ALTER DATABASE データベースを変更するSQL

ALTER DATABASEとは、データベースを変更するSQL文である。

グローバル・データベース名を変更する

グローバル・データベース名を変更する。

ALTER DATABASE RENAME GLOBAL_NAME TO database.domain
database
データベース名を指定する。
domain
ネットワーク・ドメインを指定する。

database.domainは引用符で囲まない。database.domainを引用符で囲むと、「ORA-01729: データベース・リンク名が必要です。」というエラーが発生する。

変更したグローバル・データベース名は GLOBAL_NAME データ・ディクショナリ・ビューで確認できる。

グローバル・データベース名を変更する。

ALTER DATABASE RENAME GLOBAL_NAME TO sales.itref.fc2web.com

データベースをマウントする

ALTER DATABASE MOUNT

データベースをオープンする

ALTER DATABASE OPEN

すべての表領域をバックアップする

ALTER DATABASE BEGIN BACKUP

バックアップ・モードを終了する

ALTER DATABASE END BACKUP

アーカイブ・ログ・モードに切り替える

ALTER DATABASE ARCHIVELOG
SQL> ALTER DATABASE ARCHIVELOG;

データベースが変更されました。

SQL> SELECT LOG_MODE V$DATABASE;

LOG_MODE
------------
ARCHIVELOG

SQL> ALTER DATABASE NOARCHIVELOG;

データベースが変更されました。

SQL> SELECT LOG_MODE V$DATABASE;

LOG_MODE
------------
NOARCHIVELOG

データファイルのパスを変更する

ALTER DATABASE RENAME FILE old-datafile TO new-datafile

データファイルのパスを変更する手順を以下に示す。

$ sqlplus / as sysdba

SQL> SHUTDOWN IMMEDIATE

SQL> EXIT

$ cp /u01/app/oracle/sid/old.dbf /u01/app/oracle/sid/new.dbf

$ sqlplus / as sysdba

SQL> STARTUP MOUNT

SQL> ALTER DATABASE RENAME FILE '/u01/app/oracle/sid/old.dbf' TO '/u01/app/oracle/sid/new.dbf';

SQL> ALTER DATABASE OPEN;

smallfile表領域のサイズ変更

smallfile表領域のサイズを変更するには、ALTER DATABASE 文を使う。

SQL> ALTER DATABASE DATAFILE '/home/user1/test1.dbf' RESIZE 10G;

※bigfile表領域のサイズを変更するには、ALTER TABLESPACE 文を使う。

表領域が bigfile か smallfile かを確認するには、DBA_TABLESPACES データ・ディクショナリ・ビューを問い合わせる。

SQL> SELECT bigfile FROM DBA_TABLESPACES WHERE TABLESPACE_NAME = 'test1';

SQL