データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

6
データベース設計書の必要性[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 去年閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私はデータベースを設計していますが、テーブル間に非常に多くの関係があり、データベースの設計を非常によく教える本が必要です。

3
SQL Serverは回復中のデータベースを表示します
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 今日、停電後、1つのデータベース(リカバリ:フル)がSSMSで「リカバリ中」と表示されます。そう: myDatabase(リカバリ中)(データベースステータス:リカバリ、シャットダウン) 終了後、データベースの「回復プロセス」には、「(回復中)」のないmyDatabaseという名前が表示されます。問題は解決したと思ったが、そうではなかった。 そのデータベースを使用するアプリケーションを起動すると、データベース名の横に「(回復中)」という余分なテキストが再び表示されます。 「回復プロセス」が終了するまで待ってから、データベースをオフラインにし、オンラインに戻しました。 サーバーを再起動し、コンピューターを再起動し、アプリケーションが実行されていたときに余分なテキストが再び表示されます。SQL Serverログに、「データベース 'myDatabase'を起動しています」というメッセージが数回表示されます。データを挿入できるのでデータベースは機能しているようですが、状態は何かが起こっていることを示しています。 サーバーログには興味深いものは何も表示されません。唯一の異常なことは、「データベース 'myDatabase'を起動しています」というエントリが30個あることです。 サーバーが起動すると、すべてのデータベースが使用可能な状態になる前に回復することを知っています。しかし、私の場合、データベースはオンラインになり、「myDatabase(In recovery)」と表示されます。アプリケーションを閉じると、データベースはStatus:Normalになります。これは私を夢中にさせます。 SQL Serverの新しいインスタンスをインストールし、その上に古いデータベース「myDatabase」を配置しました。問題は引き続き発生します。 このクエリを実行すると: SELECT databasepropertyex('nyDatabase', 'STATUS') 回復中、オンライン、疑わしい、オンラインに戻った後、回復などが表示されます。

4
データ移行を計画するためのワークフローは何ですか?
ソフトウェア開発作業の最後に何度も連れてきて、「大丈夫、この新しいコードはすべて揃っているので、テーブルを変更し、データを移行する必要があります」と言われました。 一度限りの、ヒップからのシュート、最高の推測のシナリオのようです。これはDBAとしての私の最も弱いスキルセットだと感じています。 データ移行へのアプローチ、管理、テストのためのいくつかのパターンに入りたいと思います。 いくつかのベストプラクティスや、この分野の改善に役立つ教材を入手できる場所を教えてください。

4
チェック制約が機能しませんか?
次の表があります。 create table test ( id smallint unsigned AUTO_INCREMENT, age tinyint not null, primary key(id), check (age<20) ); 問題はCHECK、年齢の列で制約が機能しないことです。たとえば、年齢フィールドに222を挿入すると、MySQLはそれを受け入れます。
23 mysql  constraint 

3
PostgreSQL 8.4にpgcryptoをインストールするにはどうすればよいですか?
Ubuntu Server 10.10を使用しています。PostgreSQL8.4をインストールしましたapt-get install postgresql。組み込みsha1()関数を使用したいのですが、pgcrypto最初にインストールする必要があるようです。しかし、私はそれをインストールする方法を知りません。 何もありませんpgcrypto、私は使用してそれをインストールしようとした場合apt-get install pgcrypto、私はで始まるすべてのファイルを見つけることができませんpgcrypto(私が試した私のシステムではfind / -name "pgcrypto*")。 digest('word-to-hash','sha1')データベースクエリで関数を使用できるようにpgcryptoをインストールするにはどうすればよいですか? 更新: pgcryptoを別のUbuntuマシンにインストールするのに苦労しています。使用してパッケージをインストールした後sudo apt-get install postgresql-contrib-8.4、私は私の現在のPostgreSQLデータベースにそれをインストールするにはどうすればよいの?


2
SQL Server Express 2008のインスタンス名を変更する方法は?
この質問は、データベース管理者のStack Exchangeで回答できるため、Server Faultから移行されました。 7年前に移行され ました。 開発マシンにSQL Server Express 2008をインストールしましたが、インスタンス名があります.\SQLEXPRESS。デフォルトのインスタンスにしたいです。セットアップで[既定のインスタンス]オプションを選択したことは確かですが、明らかに機能しませんでした。インスタンス名を変更する方法はありますか? 追加: これはインストーラーの既知のバグのようです。PCU 1(PubliC Update)が公開された時点で修正されますが、いつそれが起こるかはわかりません。それまでの間、次の2つの回避策があります。 インストール時に、「名前付きインスタンス」オプションを選択してを入力しMSSQLSERVERます。 名前付きインスタンスをインストールしてから、別のインスタンスをインストールすると、今回は「デフォルトのインスタンス」オプションが機能します。 それでも、疑問は残る:インスタンスの名前を変更するにはどのような方法があるなしに再インストールするには?セットアップが遅い痛みだったからです。XD

5
新しいスナップショットを生成せずに記事をトランザクションパブリケーションに追加する
プルサブスクライバーでSQL 2008 R2トランザクションレプリケーションを使用して、記事を追加するときに、スナップショット全体を作成する必要がないようにしたいと思います(dbは最大80 GBであるため、これには数時間かかります)。 この記事から、immediate_syncをオフに設定することで部分スナップショットでこれを行う方法を見てきましたが、それはうまくいきませんでした。 理想的には、dbスクリプトの一部としてこれを実行してテーブルを作成したいので、複製する場合は次のようにします。 Create Table ... sp_addArticle ... sp_PushThisToOurSubscribersNow

1
0が空の文字列と等しいのはなぜですか?
次のT-SQLステートメントが返される理由1(true)を見つけるには、助けが必要です。 SELECT IIF( 0 = '', 1, 0) 誰かが動作の原因となっているANSIオプションなどを変更したと思いますSET ANSI_NULLS。 私の問題は、いくつかの値を結合していることです。最終行セットには、結合される値0と''値がありますが、これは正しくありません。

2
Postgresの複数の列をjsonに
私はpostgresql 9.3.4を実行しています。3つのフィールドを持つテーブルがあります。 id name addr --- ---- ---- 1 n1 ad1 2 n2 ad2 ... 次のようなフィールドを持つ新しいテーブルにデータを移動する必要があります。 id data --- ---- 1 {'name': 'n1', 'addr': 'ad1'} 2 {'name': 'n2', 'addr': 'ad2'} ... row_to_json結果にSELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t追加idされるので、私にとっては解決策ではありません。データフィールドで必要なフィールド(名前とアドレス)を選択する方法はありますか?
23 postgresql  json  row 

3
Postgresのマテリアライズドビューを置き換える
マテリアライズドビューがあり、Postgres 9.3新しい列で更新したい。ただし、他のマテリアライズドビューもこのビューに依存しており、エラーメッセージは、他のオブジェクトがそれに依存している場合、ビューの削除が不可能であることを示しています。 エラー:他のオブジェクトに依存しているため、マテリアライズドビューlatest_chargesを削除できません また、ドキュメントから、REPLACEキーワードはマテリアライズドビューに対して有効ではないようです。すべての依存オブジェクトを削除し、各オブジェクトを再構築する以外にショートカットはありますか?

2
MySQL DBをバックアップするためのベストプラクティス
私は最近、MySQLを実行する実稼働Webサーバーが定期的に(またはまったく)バックアップされていないことを発見しました。私はSQL Server DBのバックアップに慣れていますが、MySQL DBの豊富な経験はありません。「mysqldump」またはその他のDBバックアップツールを使用するためのベストプラクティスはありますか? スケジュールをcronジョブにして夜間に実行し、その後、バックアップシステムでファイルをバックアップします。 ありがとう。
23 mysql  mysqldump 

4
Microsoft SQL Serverをホストしているマシンを安全に再起動するには、どのような手順が必要ですか?
MS SQL Serverインスタンスをホストしているサーバーを再起動するときにデータの破損を防ぐために必要な特別な手順はありますか? たとえば、最近、SQLサービスを手動で停止するという推奨事項に出会いました。私の理解では、これはWindows shutdownプロセスによって処理されます。 先ほど述べたように、個人が推奨する無数のステップがあると確信していますが、時代遅れのまたは迷信的な慣行を繰り返したくないのです。マイクロソフトからの推奨事項、または広範な業界標準はありますか? この質問は、マシンを再起動する短期的な手順に関連しています。マシンを永久に停止する前に、マシンが使用されていないことを確認する長期的な手順に関して別の質問があります。

3
列が存在する場合は特定の行を、列が存在しない場合はすべての行を選択する方法
いくつかのテーブルの行数を取得するスクリプトを作成していますが、一部のテーブルでは、フラグが設定されている行数のみを取得したい(この場合はactive = 1)。1つのクエリでこれを行う方法はありますか? 例えば: テーブルusersにactiveという列があります テーブルにclientsactiveという列がありません active = 1のユーザーの数を取得し、クライアントの数を取得したいだけです。 あなたが言う前に「だけでハードコードは、それが」これは、多くの異なるデータベース上で実行することができPythonスクリプト内で起こっているクエリであり、私は私のスクリプトを選択し、それらが列を持っている場合に呼び出されますどのようなテーブル知る方法はありませんactiveし、 2つの別々のクエリではなく、1つのクエリだけですべてを実行し、mysqlに依存してエラーをスローすることで、もう1つのクエリを使用することができます。
23 mysql  select  count 

7
特定の役割のすべての権限をリストしますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 6年前に移行され ました。 私はあちこち検索してみましたが、この質問に対する決定的な答えは見つかりませんでした。 関連する役割にすべてのアクセス許可を付与できるスクリプトが必要です。 何か考え、またはそれも可能ですか? これは私を閉じます-しかし、私はそれをひっくり返して、ユーザーではなく役割の要約を与えることができないようです。 http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/SQL-Server-2005_3A00_-View-all-permissions--_2800_2_2900_.aspx WITH perms_cte as ( select USER_NAME(p.grantee_principal_id) AS principal_name, dp.principal_id, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = dp.principal_id ) --role members SELECT rm.member_principal_name, rm.principal_type_desc, p.class_desc, p.object_name, p.permission_name, …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.