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

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

目次

  1. ALTER DATABASE BACKUP CONTROLFILE TO TRACE
  2. ALTER DATABASE RENAME GLOBAL_NAME
  3. ALTER DATABASE MOUNT
  4. ALTER DATABASE OPEN
  5. ALTER DATABASE BEGIN BACKUP
  6. ALTER DATABASE END BACKUP
  7. ALTER DATABASE ARCHIVELOG
  8. ALTER DATABASE RENAME FILE
  9. ALTER DATABASE DATAFILE

ALTER DATABASE BACKUP CONTROLFILE TO TRACE

制御ファイルをバイナリ・ファイル(既存の制御ファイルの複製)にバックアップを作成する。

SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/oracle/backup/control.bkp';

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

SQL>

後で制御ファイルの再作成に使用できるSQL文を生成する。

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
  
データベースが変更されました。
  
SQL>

ALTER DATABASE RENAME GLOBAL_NAME

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

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 MOUNT

ALTER DATABASE OPEN

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

ALTER DATABASE OPEN

ALTER DATABASE BEGIN BACKUP

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

ALTER DATABASE BEGIN BACKUP

ALTER DATABASE END BACKUP

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

ALTER DATABASE END BACKUP

ALTER DATABASE ARCHIVELOG

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

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

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

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;

ALTER DATABASE DATAFILE

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