ALTER DATABASEとは、データベースを変更するSQL文である。
グローバル・データベース名を変更する。
ALTER DATABASE RENAME GLOBAL_NAME TO 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表領域のサイズを変更するには、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';