データベースを一度作成したものの、ユーザーに分かりやすくするためにデータベースをリネームしたくなった経験はありませんか? そこでデータベースをリネームする方法と注意点をお伝えします。この記事では「SALES」というデータベースを「売上情報」というデータベースにリネームすることをシナリオとしています。
これから2つの方法を紹介します。1つ目に紹介する方法は簡単ですが、権限などの情報は引き継がず、2つ目に紹介する方法は少し手間ですが、必要な情報が引き継がれます。
ご自身のやりたいことにマッチする方を選んでください。
またどちらの方法も作業中はデータベースが参照できなくなるタイミングがありますので、データベースを誰も参照していない時間を狙って作業をしましょう。
サーバー内のフォルダー名を変更すればデータベースのリネームができる
Dr.Sumのデータベースはデータベースのフォルダーを参照しています。Enterprise Managerを開き、データベース上で右クリック>プロパティを選択するとディレクトリを調べることができます。ディレクトリを直接参照することでフォルダー名を変更することができます。
ディレクトリを確認してエントリーのみ削除する
データベースのフォルダーのディレクトリを確認をしたら「エントリーのみ削除」を実行します。エントリーのみ削除を行うことで一時的にDr.Sumで使用できない状態にします。
フォルダーをリネームして既存のデータベースを追加
リネームしたフォルダーを「既存のデータベースを追加」から指定するとデータはそのままでデータベース名だけ変更されたデータベースができます。
フォルダー名変更だけでは権限情報が引き継がれない
権限設定を全くしていない、マルチビューなどの機能も使わずにただデータが入っているだけのデータベースであればリネームは上記の方法で問題ございません。ただし権限設定やマルチビュー、ディストリビューターを設定している場合どうなるのでしょうか?
【リネーム前】
【リネーム後】
このようにデータベースのフォルダー名を変更するだけではDr.Sumのシステム上、
「SALES」を指定していた設定情報(権限など)は全く機能しなくなってしまいます。
正しいデータベースのリネームの方法
権限を引き継いだり、マルチビューやディストリビューターの機能を引き継いだままリネームする方法は以下の手順になります。
①マルチビュー、ディストリビューターを使用している場合はEnterprise Managerから「一覧のエクスポート」を実行する。
②エクスポートしたファイルを開き”CREATE”を”ALTER”に変更しCONNECT TOのデータベース名を「SALES」から「売上情報」に変更する。
③Enterprise Managerから「エントリーのみ削除」を実行する。
④フォルダー「SALES」を「売上情報」にリネームし「既存のデータベースを追加」で追加する。
⑤グループ情報をエクスポートしデータベース名を書き換えて再インポートする。
※データベース名以外を置き換えないように注意
※サーバーを管理モードに切り替えます。
⑥マルチビュー、ディストリビューターを使用している場合は②で編集したSQLを実行する。
マルチビュー、ディストリビューターを使用している場合は[一覧のエクスポート]から
マルチビュー、ディストリビューターを使用している場合は「マルチビュー」の上で右クリックすると表示される「一覧のエクスポート」を選択します。ディストリビューターも同様に「一覧のエクスポート」を選択します。
エクスポートするとマルチビューとディストリビューターを作成するSQLが記述されたテキストファイルが出力されます。
エクスポートしたファイルを開き”CREATE”を”ALTER”に変更し、CONNECT TOのデータベース名を「SALES」から「売上情報」に変更する
エクスポートしたファイルを開き ”CREATE” を ”ALTER” に、”SALES” を ”売上情報” に書き換えます。ここで記述したSQLは後ほど使用します。
Enterprise Managerから「エントリーのみ削除」を実行する
次にEnterprise Managerから「SALES」のデータベースから「エントリーのみ削除する」を実行します。
フォルダー「SALES」を「売上情報」にリネームし「既存のデータベースを追加」で追加する
「エントリーのみ削除する」を実行したらファルダーをリネームして「既存のデータベースを追加」からデータベースを追加します。
グループ情報をエクスポートしデータベース名を書き換えて再インポートする
Dr.Sumではデータベース(テーブル/ビュー)を参照する際にオブジェクト権限などをグループに紐づけて管理しています。これらの情報はデータベースがリネームされると機能しなくなってしまうため一度グループ情報をCSVファイルでエクスポートしデータベース名を書き換えて再インポートする必要があります。
マルチビュー、ディストリビューターを使用している場合は②で編集したSQLを実行する
マルチビュー、ディストリビューターを使用している場合は②で編集したSQLを実行することで参照先を「SALES」から「売上情報」に更新することができます。マルチビュー、ディストリビューターのどちらも右クリックからSQLの実行が可能です。(SQL Executor が開きます。)
まとめ
データベース名をリネームするには単純にデータベースのフォルダー名を変更するだけでなく、データベース名を指定している設定情報が絡んできます。バッチファイルなどでもデータベース名を指定する箇所があるのでそういった影響範囲は予め洗い出しておきましょう。