SQL*Plus
・・・SQLの対話的な実行やデータベース管理作業をするためのコマンドラインツール
SQL*Plusの起動
$ sqlplus /nolog
SQL*Plus: Release 21.0.0.0.0 - Production on 日 11月 24 18:20:20 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
SQL>
コンテナデータベースのCDBルートに管理ユーザSYSTEMでローカル接続。
・SYSユーザで接続するときは"as sysdba"を付ける。
・リモート接続する場合は"@"で始まる文字列をつける
SQL> connect / as sysdba
接続されました
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL*Plusの起動時にコンテナデータベースのCDBルートにローカル接続
SQL> sqlplus / as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on 日 11月 24 18:20:20 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
現在接続しているユーザを確認
show user;
PDBを表示
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 XEPDB1 READ WRITE NO
SQL>
PDBを開く
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS WHERE NAME = 'XEPDB1';
NAME OPEN_MODE
--------- ----------
DSCGRP01 MOUNTED
SQL> ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
プラガブル・データベースが変更されました。
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS WHERE NAME = 'XEPDB1';
NAME OPEN_MODE
----------- ----------
DSCGRP01 READ WRITE
SQL>
ユーザ一覧
SQL> SELECT USERNAME FROM USER_USERS;
テーブル一覧
SELECT TABLE_NAME FROM USER_TABLES;
ユーザ作成
SQL> CREATE USER ユーザ IDENTIFIED BY パスワード;
ユーザーが作成されました。
SQL> GRANT CREATE SESSION TO ユーザ;
権限付与が成功しました。
SQL> GRANT UNLIMITED TABLESPACE TO ユーザ;
権限付与が成功しました。
SQL> GRANT CREATE TABLE TO ユーザ;
権限付与が成功しました。
SQL>
PDB"XEPDB1"にtestユーザで接続
SQL> connect test/Pass123@localhost:1521/XEPDB1
接続されました。
SQL> show con_name
CON_NAME
------------------------------
XEPDB1
SQL>
設定一覧
show parameters
SELECT * FROM V$NLS_PARAMETERS;
テーブルの定義を確認
DESC table_name;
<主キーやユニーク制約がある列にはインデックスを作らない。>
テーブル作成時に主キーやユニーク制約の存在する列にはすでにインデックスが作成されているから。
日本語が「?????」になるときはこれ
$ export NLS_LANG=Japanese_Japan.AL32UTF8
SQL
SQL> CREATE TABLE empoloyee (id CHAR(4), name VARCHAR2(16), salary NUMBER(10));
SQL> DESCRIBE empoloyee;
アーカイブモード・非アーカイブモード
SQL> archive log list
データベース・ログ・モード 非アーカイブ・モード
自動アーカイブ 使用禁止
アーカイブ先 /opt/oracle/homes/OraDBHome21cXE/dbs/arch
最も古いオンライン・ログ順序 3
現行のログ順序 5
SQL>
表示幅設定
SQL> show linesize;
linesize 80
SQL> set linesize 500;
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL>
SQL> startup mount
ORACLEインスタンスが起動しました。
Total System Global Area 1157625952 bytes
Fixed Size 9685088 bytes
Variable Size 503316480 bytes
Database Buffers 637534208 bytes
Redo Buffers 7090176 bytes
データベースがマウントされました。
SQL>
SQL> ALTER DATABASE ARCHIVELOG;
データベースが変更されました。
SQL> ALTER DATABASE OPEN;
データベースが変更されました。
SQL> archive log list
データベース・ログ・モード アーカイブ・モード
自動アーカイブ 有効
アーカイブ先 /opt/oracle/homes/OraDBHome21cXE/dbs/arch
最も古いオンライン・ログ順序 3
アーカイブする次のログ順序 5
現行のログ順序 5
SQL>
RMAN(Recovery Manager)
バックアップ用のツール
バックアップを取得するには、データベース起動中にRMANでデータベースのCDBルートに接続し、RMANのコマンドBACKUP DATABASEを実行
$ rman TARGET /
Recovery Manager: Release 21.0.0.0.0 - Production on 月 11月 25 00:27:40 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: XE (DBID=3066928077)に接続されました
RMAN> show all;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
db_unique_name XEのデータベースにおけるRMAN構成パラメータ:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/dbs/snapcf_XE.f'; # default
RMAN>
バックアップ取得
$ rman TARGET /
Recovery Manager: Release 21.0.0.0.0 - Production on 日 11月 24 23:23:21 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: XE (DBID=3066928077)に接続されました
RMAN>
RMAN> BACKUP DATABASE;
backupを24-11-24で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
(中略)
ontrol File and SPFILE Autobackupを24-11-24で開始しています
ピース・ハンドル=/opt/oracle/homes/OraDBHome21cXE/dbs/c-3066928077-20241124-00 コメント=NONE
Control File and SPFILE Autobackupを24-11-24で終了しました
RMAN>
リストア
$ rman TARGET /
Recovery Manager: Release 21.0.0.0.0 - Production on 月 11月 25 00:00:12 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: XE (DBID=3066928077)に接続されました
RMAN> startup mount
ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。
システム・グローバル領域の合計は、 1157625952バイトです。
Fixed Size 9685088バイト
Variable Size 503316480バイト
Database Buffers 637534208バイト
Redo Buffers 7090176バイト
RMAN> RESTORE DATABASE;
restoreを24-11-25で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=54 デバイス・タイプ=DISK
(中略)
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:25
restoreを24-11-25で終了しました
RMAN> RECOVER DATABASE;
recoverを24-11-25で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=46 デバイス・タイプ=DISK
メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:05
recoverを24-11-25で終了しました
RMAN> ALTER DATABASE OPEN;
文が処理されました
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;
文が処理されました
RMAN>
コンテナ名とインスタンス名の違いは?SIDはどこで確認?
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 XEPDB1 READ WRITE NO
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
XE