データベース管理者

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

1
同時切り捨てコマンド中にサーバーがクラッシュした後のMySQL INNODBの破損
私のサーバーが今日クラッシュしました。これは、INNODBテーブルの1つでテーブルの同時切り捨てコマンドが原因で発生したと思います。サーバーを再起動できますが、起動後、SQLコマンドを発行しようとするたびに、次のエラーが発生します。 ERROR 2006 (HY000): MySQL server has gone away これはログで起こったことです: 121206 01:11:12 mysqld restarted 121206 1:11:13 InnoDB: Started; log sequence number 275 559321759 InnoDB: !!! innodb_force_recovery is set to 1 !!! 121206 1:11:13 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.95-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution InnoDB: Error: trying to …

1
可用性グループはシームレスなフェイルオーバー(クエリの失敗なし)を提供できますか?
SQL Server 2012で可用性グループ機能をテストしており、プライマリサーバーがセカンダリサーバーにフェールオーバーするときに、約15秒のダウンタイムがあることがわかりました。この間に実行されたすべてのSQLクエリは、フェイルオーバーの移行が完了するまで失敗します。 これを0秒にして、フェールオーバーの移行中にクエリが失敗しないようにする方法はありますか? 言い換えると、失敗中に実行中のクエリを失敗せずにプライマリサーバーにリダイレクトする方法はありますか。フェイルオーバーの移行中に接続しますか? 現在、可用性グループに2台のサーバーをセットアップしています。

3
バックアップの復元が失敗する-ファイル「Db」を「{…} .mdf」に復元できません。WITH MOVEを使用して、ファイルの有効な場所を特定します
顧客から受け取ったバックアップファイルに対して復元コマンドを使用して復元しようとすると、次のエラーが発生します。 ディスクからデータベースSFDBを復元= N'C:\ Backup \ Backup.bak ' これを修正するために私が何ができるかについての考えはありますか?それはmdfを探しているので、私が持っているバックアップファイルはフルバックアップではなく増分バックアップであると想定できますか?それが、mdfを探しているのはなぜですか? 1)すべてのデータ(データベース全体)を提供したか、2)適切なデータを持っているか、適切なT-SQLコマンドを使用して復元を実行できるかどうかはわかりません。方法がわかりません。 助けていただければ幸いです。 Msg 5133, Level 16, State 1, Line 2 Directory lookup for the file "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Db.mdf" failed with the operating system error 21(failed to retrieve text for this error. Reason: 15105). Msg 3156, Level 16, State 3, Line 2 …

2
リンクサーバーを参照するポータブルSQLを作成するにはどうすればよいですか?
リンクサーバーを参照するストアドプロシージャを持っています。手順全体のいくつかの場所で、次のようなものが得られます。 INSERT INTO [TableName] (...Columns...) SELECT ...Columns... FROM [ServerName\InstanceName].[Catalogue].[dbo].[TableName] WHERE TableNameID = @TableNameID この手順は、私の開発環境、テスト環境、およびライブ環境に存在します。 問題は、サーバー名が環境ごとに異なるため、プロシージャの各コピーが微妙に異なることです。これにより、スクリプト更新の展開の管理が面倒になります。 各環境で同じバージョンのプロシージャを実行できるように、プロシージャを移植可能にする方法はありますか? そうでない場合、スクリプトの展開を間違い/エラーに陥らなくするために私ができることはありますか?

2
mysql.procがクラッシュし続けますが、mysqldumpを実行できませんか?
InnoDBのいくつかの問題のため、すべてのデータベースを新しいサーバーにダンプします。 mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server ダンププロセスはエラーで停止しました: 59.9kB assword: 59.9kB ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should be repaired 228MB mysqldump: Got errno 32 on write 次のコマンドを実行して、すべてのデータベースのすべてのテーブルを修復しました。 mysqlcheck --auto-repair --all-databases mysql.procステータスを調べると、次のことがわかります。 mysql> check table …

4
SQLカウントクエリを高速化できるものは何ですか?
カウント(集計)SQLクエリを実行する場合、これら3つのデータベースシステムで実行時間を短縮できるものは何ですか?スピードアップできるものはたくさんあると思いますが(ハードウェアは1つです)、私は初心者のDBAなので、ここでいくつかの回答を得られると確信しています。約1億5700万行をSQL​​ Serverデータベースに移行しましたが、このクエリは永遠にかかります。しかし、私のソースのNetezzaデータベースでは、数秒かかります。 例えば: Netezza 6: SELECT COUNT(*) FROM DATABASENAME..MYTABLE Oracle 11g: SELECT COUNT(*) FROM MYTABLE SQL Server 2012: SELECT COUNT(*) FROM DATABASENAME.[dbo].[MYTABLE]

2
結果を待たずにpsqlからクエリを実行する方法は?
(既存のテーブルから新しいテーブルを作成するための)クエリに非常に長い時間がかかります。そこで、オフィスにリモートデータベースをセットアップしました-RAMを増やします。 通常どおり、psqlを使用して自宅からデータベースに接続できます。 応答を待たずにターミナルからクエリを実行するようにリモートサーバーに指示するにはどうすればよいですか? (postgresql-9.2、Linux環境) 編集:私は他のソリューションにオープンです、psqlを使用する必要はありません

3
特定のテーブルでのロギングの無効化
SQL Server 2005を使用しています。集計情報を含む2つのテーブルがあります。情報は常に更新されており、1日にほぼ5GBのログデータが生成されます。(データベース全体よりも大きい!)ロールバックは本当に必要ないので、これらのテーブルのロギングを無効にしたいと思います。ただし、データベース内の他のテーブルにログオンし続けたいと思います。 データベース内の特定のテーブルのロギングを無効にすることは可能ですか?そうでない場合、2つのテーブルを同じスキーマに配置して、スキーマへのロギングを無効にできますか?2つのテーブルを別のデータベースに移動し、そこでログを無効にする唯一のオプションはありますか? 更新: これらのテーブルのアクティビティをログに記録する必要がない理由を説明します。 2つのテーブルにはGPSデータが含まれているため、かなり大きくなります。最初のテーブルは、フィールド内の6つのAndroidテーブルから生の場所をキャプチャしています。各タブレットからの新しいデータは5〜10秒ごとに送信されます。その情報は、locationA、locationB、travelTimeとして集約されます。最終的には、実際の運転データに基づいて、すべての場所間の移動時間を最短にすることが目標です。データは小都市のみのものであり、小数点第4位までしか正確ではないため、管理可能です。ただし、新しい生データが入力されると、更新が必要な移動時間が遅くなり、新しい移動データが挿入される必要があります。 生データが集約されると、パージされます。長い移動時間に戻ることはないので、これらのテーブルではロールバックはそれほど重要ではありません。

1
複数のデータベースで作業していますか?
Linuxでsqlite3を使用して、複数のデータベースをどのように操作できますか? データベース1で次のようなことをしたいのですが? sqlite3 database1.db insert into database1.mytable values (select * from database2.mytable) SELECT上記のdatabase2 のクエリを作成するにはどうすればよいですか?
9 sqlite 

1
SQLSMSでSSMSから生成されたTSQLスクリプトを実行しています。引用に失敗
SQL Server Management Studioの「スクリプトの生成」ツールで生成されたスクリプトを実行して、データベースをマシンに配置しようとしています。 これが私が発行したコマンドです: sqlcmd -S LOCALHOST\sqlexpress -I -U user -P ******** -i C:\Rollouts\NI-9-25-2012_10-42-AM\Rollout.sql > rolloutlog.txt 次のようなエラーが表示されます。 Sqlcmd:エラー:ファイル 'C:\ Rollouts \ NI-9-25-2012_10-42-AM \ Rollout.sql'のコマンド '' 'の近くの39488行で構文エラー。 この行をテキストエディタで表示すると、すべての兆候が引用符の問題を示しています。 問題の行は次のようになります。 $( ''。cat-menu-new '')。slideDown( '' slow ''); スクリプト内の引用符をサポートするためにスクリプトを実行または生成する必要があるスイッチはありますか?


1
MySQL:内部クエリで「ORDER BY」を使用してUNIONを最適化する
同じレイアウトの複数のテーブルで構成されるロギングシステムをセットアップしただけです。 データソースごとに1つのテーブルがあります。 ログビューアについて、私はしたいです UNIONすべてのログテーブル、 アカウントでそれらをフィルタリングし、 ソースを識別するための疑似列を追加し、 時間順に並べ替え、 そして、ページ分割のためにそれらを制限します。 すべてのテーブルにzeitpunktは、インデックス付きの日付/時刻列であるというフィールドが含まれています。 私の最初の試みは: (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt AS zeit, 'hp' AS source FROM is_log AS l WHERE l.account_id = 730) UNION (SELECT l.id, l.account_id, l.vnum, l.count, l.preis, l.zeitpunkt, 'ig' AS source FROM ig_is_log AS l WHERE l.account_id = 730) ORDER …

1
SSD上のSQL Server 2012のtempdb、mdf、ldfファイルの最適な配置?
これはおそらく非常に自由な質問であり、答えはさまざまである可​​能性がありますが、SSDについて話すときのSQL Server 2012のtempdb、mdf、およびldfファイルの最適な配置は何ですか? 新規購入前は、SQL Server 2012コアファイルとtempdbがインストールされた既存のSSDがあり、7200rpm HDDにmdf / ldfの両方がありました。次に、MDFとLDFを一方に配置するという当初の目的で、2つのSSDを購入しました。 しかし、それをさらに読み取ることから、SSDに関しては、mdfファイルとldfファイル用の個別の物理ディスクは実際には適用されません。正しい? だから、私は次のことを考えていました: SSD 1-SQL Server 2012コアファイルおよびWindows SSD 2-tempdb SSD 3-mdfおよびldf それが違いを生む場合、これは1つのデータベースのみに割り当てられるため、複数のデータベース間で競合は発生しません。 私の "考えている"セットアップは良いですか、それとも単に無駄になっていますか(つまり、tempdbを分離する理由はありません)。

1
SQL Server 2008 R2セットアップクライアントツール接続
SQL Server 2008 R2のセットアップ中に、「クライアントツールの接続性」と「クライアントツールの下位互換性」のインストールオプションのチェックボックスが表示されます。これらはクライアントサーバー通信のコンポーネントであると述べています。誰でもこれらのコンポーネントについて説明できますか?これらのコンポーネントを選択したときにサーバーに実際にインストールされるもの。

4
PostgreSQL:ユーザーのパスワードの変更が機能しない
マシンにインストールPostgreSQLしEC2、ユーザーのパスワードを変更したいpostgres 私がやります $ sudo -u postgres psql psql (9.1.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd'; ALTER ROLE 次に、シェルを終了し、新しいパスワードでログインしようとします $ psql -U postgres -W Password for user postgres: psql: FATAL: Peer authentication failed for user "postgres" 私のPostgreSQLバージョンは $ psql --version psql (PostgreSQL) 9.1.5 contains support for …

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