Oracle19c テーブルスペースの作成における落とし穴
# いくつかのよくあるコード
--query temporary tablespace
select name from v$tempfile;
--query tablespace
select name from v$datafile;
Change the user's password
alter user Username identified by password;
昨日oracle19cをデプロイした後、以前書いたoracle11gのメモを使ってテーブルスペースを作成したところ、落とし穴に遭遇した。ここに要約を書きます。
実は、落とし穴に遭遇したのは、oracle11gと比較して、oracle19cにはCDBとPDBという概念が追加されている(12C以降)ためです。
# 表領域ファイルの格納ディレクトリを決定する
[oracle@localhost ~]$ su - oracle
[oracle@localhost ~]$ cd /opt/oracle/oradata[oracle@localhost oradata]$ ls
ORCLCDB
[oracle@localhost oradata]$ cd ORCLCDB[oracle@localhost ORCLCDB]$ ls
control01.ctl control02.ctl ORCLPDB1 pdbseed redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf
[oracle@localhost ORCLCDB]$ mkdir anytxn_v2_dev
[oracle@localhost ORCLCDB]$ cd anytxn_v2_dev[oracle@localhost anytxn_v2_dev]$ pwd
/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev
#テーブルスペースファイルの作成
[oracle@localhost anytxn_v2_dev]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 21 13:38:42 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> CREATE TEMPORARY TABLESPACE ANYTXN_DEV_DATA_TEMP TEMPFILE '/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev/anytxn_v2_dev_temp.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;
Tablespace created.
SQL> create tablespace ANYTXN_V2_DEV_DATA
logging
datafile '/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev/anytxn_v2_dev_data.dbf'
size 100M
autoextend on
next 100M maxsize 30480M
autoallocate
extent management local
segment space management auto; 2 3 4 5 6 7 8 9
Tablespace created.
#ユーザーの作成
SQL> create user anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_ DATA_TEMP profile DEFAULT;
create user anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT
*DEFAULT
ERROR at line 1:
ORA-65096: invalid common user or role name
このエラーは、ユーザー名が仕様を満たしていないため、Oracle 12Cは、CDBとPDBの新機能を導入し始めた。 sqlplus / sysdbaコマンドとしてデフォルトのログインCDBデータベース、およびCDBデータベースは、すべての新しいユーザー名をcで始まる必要があります必要##、それ以外の上記のエラーが報告されます、PDBのユーザー作成には、この必要はありません。
# ユーザー名を変更した後にユーザーを作成する
SQL> create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_ DATA_TEMP profile DEFAULT;
create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA_ TEMP profile DEFAULT
*DEFAULT
ERROR at line 1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database ORCLPDB1
ORA-00959: tablespace 'ANYTXN_V2_DEV_DATA' does not exist
その理由は、CDB内でユーザー割り当て表領域を作成する場合、割り当て表領域がPDBとCDBの両方に存在しなければならず、そうでない場合はエラーが報告されるからである。PDBとCDBに同じ表領域があるときに、CDBのユーザーに表領域を割り当てた場合、CDBの表領域が割り当てられ、ユーザーPDBへの表領域は影響を受けません。そのため、PDBに同じ表領域を作成し、CDBに戻ってユーザー
Query the current database name
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
Query the name of PDB database
SQL> select name,open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
------------------------------
PDB$SEED
READ ONLY
ORCLPDB1
READ WRITE
Switching database
SQL> alter session set container=ORCLPDB1;
Session altered.
SQL> CREATE TEMPORARY TABLESPACE ANYTXN_DEV_DATA_TEMP TEMPFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/anytxn_v2_dev/anytxn_v2_dev_temp .dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;
Tablespace created.
SQL> create tablespace ANYTXN_V2_DEV_DATA
logging
datafile '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/anytxn_v2_dev/anytxn_v2_dev_data.dbf'
size 100M
autoextend on
next 100M maxsize 30480M
autoallocate
extent management local
segment space management auto; 2 3 4 5 6 7 8 9
Tablespace created.
SQL> alter session set container=CDB$ROOT;
Session altered.
SQL> create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA DATA_TEMP profile DEFAULT;
User created.
SQL> GRANT CONNECT,RESOURCE TO c##anytxn_v2_dev;
Grant succeeded.
上記のように、作成に成功しましたので、新しいユーザーでデータベースに接続してみます。
[oracle@localhost anytxn_v2_dev]$ sqlplus c##anytxn_v2_dev/jrx12345
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 21 20:46:04 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.
Last Successful login time: Fri Feb 21 2020 15:33:39 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle19c 表領域の作成に関する本記事を公開しました。Oracle19c 表領域の作成に関する詳細については、過去の記事を検索するか、引き続き以下の記事をご覧ください。
関連
-
Oracle Dbeaver ストアドプロシージャの構文説明
-
Oracleの表領域と権限を徹底解説
-
オラクルのファジー・クエリーとその使い方
-
Oracle11g r2のアンインストール、詳細なチュートリアルのクリーンな再インストール(プロのテストは、効果的な再インストールされている)。
-
Oracle PL/SQLを使用して電子メール機能(UTL_MAIL)を実装する方法
-
[解決済み] Oracle の起動ができません - ORA-00845: MEMORY_TARGET はこのシステムでサポートされていません - しかし、メモリサイズは問題ないようです。
-
[解決済み] PLS-907でライブラリユニットを読み込めない
-
[解決済み] oracleの'enq:TM contention'待ちイベントが発生する原因
-
[解決済み] 1行のみ追加 "ORA-02290: チェック制約 (SYS_C0012762) 違反 ORA-01403: データが見つかりません"
-
[解決済み] ORA-01747:user.table.column, table.column, または column の指定が無効です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン