- データベース管理者のための主要20c新機能の学習
- データベース管理者のための主要20c新機能の学習
- パフォーマンスおよび高可用性のオプション
- Oracle Multitenant
- PDBアプリケーション同期化の拡張構文
- 演習: アプリケーションPDBでの複数のアプリケーションの同期
演習: アプリケーションPDBでの複数のアプリケーションの同期
この演習では、アプリケーションPDBで複数のアプリケーションを同期させる必要がある場合に、同期文の数を減らす方法を示します。以前のバージョンのOracle Databaseでは、アプリケーションと同じ数の同期文を実行する必要がありました。
- 新しい演習を開始する前に、演習の環境の推奨事項を参照してください。
/home/oracle/labs/M104780GC10/setup_apps.sh
シェル・スクリプトを使用して、ROBOTS
とDOLLS
の両方のアプリケーションPDBのTOYS_ROOT
アプリケーション・コンテナにTOYS_APP
およびSALES_TOYS_APP
アプリケーションをインストールします。このスクリプトでは、アプリケーション・コンテナを定義し、アプリケーション・コンテナに2つのアプリケーションをインストールし、最後にアプリケーション・コンテナに2つのアプリケーションPDBを作成します。- シェル・スクリプトの実行中に
TOYS_ROOT
、ROBOTS
およびDOLLS
に接続できるようにするには、演習の環境の説明に従って、tnsnames.ora
ファイルにエントリを作成します。 - シェル・スクリプトを実行します。
$ cd /home/oracle/labs/M104780GC10 $ /home/oracle/labs/M104780GC10/setup_apps.sh ... SQL> ALTER PLUGGABLE DATABASE toys_root CLOSE IMMEDIATE; Pluggable database altered. SQL> DROP PLUGGABLE DATABASE robots INCLUDING DATAFILES; Pluggable database dropped. SQL> DROP PLUGGABLE DATABASE dolls INCLUDING DATAFILES; Pluggable database dropped. SQL> DROP PLUGGABLE DATABASE toys_root INCLUDING DATAFILES; Pluggable database dropped. SQL> ALTER SESSION SET db_create_file_dest='/home/oracle/labs/toys_root'; Session altered. SQL> CREATE PLUGGABLE DATABASE toys_root AS APPLICATION CONTAINER 2 ADMIN USER admin IDENTIFIED BY password ROLES=(CONNECT); Pluggable database created. SQL> alter PLUGGABLE DATABASE toys_root open; Pluggable database altered. SQL> exit Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL*Plus: Release 20.0.0.0.0 - Production on Fri Nov 29 03:03:18 2019 Version 20.2.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app begin install '1.0'; Pluggable database altered. SQL> SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='/home/oracle/labs/toys_root'; System altered. SQL> CREATE TABLESPACE toys_tbs DATAFILE SIZE 100M autoextend on next 10M maxsize 200M; Tablespace created. SQL> create user toys_owner identified by password container=all; User created. SQL> grant create session, dba to toys_owner; Grant succeeded. SQL> SQL> CREATE TABLE toys_owner.categories SHARING=DATA (c1 number, category varchar2(20)); Table created. SQL> INSERT INTO toys_owner.categories VALUES (1,'GAMES'); 1 row created. SQL> INSERT INTO toys_owner.categories VALUES (2,'PUPPETS'); 1 row created. SQL> INSERT INTO toys_owner.categories VALUES (3,'VEHICLES'); 1 row created. SQL> COMMIT; Commit complete. SQL> SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app end install '1.0'; Pluggable database altered. SQL> SQL> ALTER PLUGGABLE DATABASE APPLICATION sales_toys_app BEGIN INSTALL '1.0'; Pluggable database altered. SQL> SQL> CREATE USER sales_toys IDENTIFIED BY password CONTAINER=ALL; User created. SQL> GRANT create session, dba TO sales_toys; Grant succeeded. SQL> ALTER USER sales_toys DEFAULT TABLESPACE toys_tbs; User altered. SQL> CREATE TABLE sales_toys.sales_data sharing=extended data 2 (year number(4), 3 region varchar2(10), 4 quarter varchar2(4), 5 revenue number); Table created. SQL> INSERT INTO sales_toys.sales_data VALUES (2019,'US','Q1',100000); 1 row created. SQL> INSERT INTO sales_toys.sales_data VALUES (2019,'US','Q2',400000); 1 row created. SQL> INSERT INTO sales_toys.sales_data VALUES (2019,'EU','Q2',50000); 1 row created. SQL> INSERT INTO sales_toys.sales_data VALUES (2019,'ASIA','Q3',300000); 1 row created. SQL> INSERT INTO sales_toys.sales_data VALUES (2019,'EU','Q3',20000); 1 row created. SQL> COMMIT; Commit complete. SQL> SQL> ALTER PLUGGABLE DATABASE APPLICATION sales_toys_app END INSTALL '1.0'; Pluggable database altered. SQL> SQL> exit Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL*Plus: Release 20.0.0.0.0 - Production on Fri Nov 29 03:03:37 2019 Version 20.2.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> SQL> ALTER SESSION SET DB_CREATE_FILE_DEST='/home/oracle/labs/toys_root/robots'; Session altered. SQL> CREATE PLUGGABLE DATABASE robots ADMIN USER admin identified by password ROLES=(CONNECT); Pluggable database created. SQL> ALTER SESSION SET DB_CREATE_FILE_DEST='/home/oracle/labs/toys_root/dolls'; Session altered. SQL> CREATE PLUGGABLE DATABASE dolls ADMIN USER admin identified by password ROLES=(CONNECT); Pluggable database created. SQL> SQL> alter pluggable database robots open; Pluggable database altered. SQL> alter pluggable database dolls open; Pluggable database altered. SQL> SQL> exit Disconnected from Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 $
- シェル・スクリプトの実行中に
- アプリケーション・コンテナにインストールされているアプリケーションを表示します。
$ sqlplus / AS SYSDBA SQL*Plus: Release 20.0.0.0.0 - Production on Mon Mar 16 05:29:42 2020 Version 20.2.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production Version 20.2.0.0.0 SQL> COL app_name FORMAT A16 SQL> COL app_version FORMAT A12 SQL> COL pdb_name FORMAT A10 SQL> SELECT app_name, app_version, app_status, p.pdb_name FROM cdb_applications a, cdb_pdbs p WHERE a.con_id = p.pdb_id AND app_name NOT LIKE '%APP$%' ORDER BY 1; APP_NAME APP_VERSION APP_STATUS PDB_NAME ---------------- ------------ ------------ ---------- SALES_TOYS_APP 1.0 NORMAL TOYS_ROOT TOYS_APP 1.0 NORMAL TOYS_ROOT SQL>
アプリケーション
toys_app
およびsales_toys_app
がバージョン1.0のアプリケーション・コンテナにインストールされていることに注目します。 - アプリケーションPDBを、インストールされている新しいアプリケーション
toys_app
およびsales_toys_app
と同期させます。SQL> CONNECT sys@robots AS SYSDBA Enter password: password SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app, sales_toys_app SYNC; Pluggable database altered. SQL> SELECT app_name, app_version, app_status, p.pdb_name FROM cdb_applications a, cdb_pdbs p WHERE a.con_id = p.pdb_id AND app_name NOT LIKE '%APP$%' ORDER BY 1; APP_NAME APP_VERSION APP_STATUS PDB_NAME ---------------- ------------ ------------ ---------- SALES_TOYS_APP 1.0 NORMAL ROBOTS TOYS_APP 1.0 NORMAL ROBOTS SQL> CONNECT sys@dolls AS SYSDBA Enter password: password SQL> ALTER PLUGGABLE DATABASE APPLICATION toys_app, sales_toys_app SYNC; Pluggable database altered. SQL> SELECT app_name, app_version, app_status, p.pdb_name FROM cdb_applications a, cdb_pdbs p WHERE a.con_id = p.pdb_id AND app_name NOT LIKE '%APP$%' ORDER BY 1; APP_NAME APP_VERSION APP_STATUS PDB_NAME ---------------- ------------ ------------ ---------- SALES_TOYS_APP 1.0 NORMAL DOLLS TOYS_APP 1.0 NORMAL DOLLS SQL> CONNECT / AS SYSDBA Connected. SQL> SELECT app_name, app_version, app_status, p.pdb_name FROM cdb_applications a, cdb_pdbs p WHERE a.con_id = p.pdb_id AND app_name NOT LIKE '%APP$%' ORDER BY 1; APP_NAME APP_VERSION APP_STATUS PDB_NAME ---------------- ------------ ------------ ---------- SALES_TOYS_APP 1.0 NORMAL DOLLS SALES_TOYS_APP 1.0 NORMAL ROBOTS SALES_TOYS_APP 1.0 NORMAL TOYS_ROOT TOYS_APP 1.0 NORMAL DOLLS TOYS_APP 1.0 NORMAL TOYS_ROOT TOYS_APP 1.0 NORMAL ROBOTS 6 rows selected. SQL> EXIT $
親トピック: PDBアプリケーション同期化の拡張構文