19C新特性,application root/pdb, 为什么建表时指明了SHARING=METADATA, 但app_pdb1做了sync后,仍然把application root里的数据也同步过来了?
SQL> create pluggable database app_con1 as application container admin user pdbadmin identified by pdbadmin roles=(connect);
Pluggable database created.
SQL> SQL> alter pluggable database app_con1 open;
Pluggable database altered.
SQL> alter session set container=app_con1;
Session altered.
SQL> create pluggable database app_pdb1 admin user pdbadmin identified by pdbadmin roles=(connect);
Pluggable database created.
SQL> ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN INSTALL '1.0';
Pluggable database altered.
SQL> CREATE TABLESPACE ref_app_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;
Tablespace created.
CREATE USER ref_app_user IDENTIFIED BY ref_app_user
DEFAULT TABLESPACE 2 ref_app_ts
QUOTA UNLIMITED ON ref_app_ts
CONTAINER=ALL;
GRANT CREATE SESSION, CREATE TABLE TO ref_app_user;
User created.
SQL> SQL>
Grant succeeded.
CREATE TABLE ref_app_user.reference_data SHARING=METADATA (
id NUMBER,
description VARCHAR2(50),
CONSTRAINT t1_pk PRIMARY KEY (id)
);
INSERT INTO ref_app_user.reference_data
SELECT level,
'Description of ' || level
FROM dual
CONNECT by level <= 5;
COMMIT;
Table created.
5 rows created.
SQL>
Commit complete.
SQL>
SQL> ALTER PLUGGABLE DATABASE APPLICATION ref_app END INSTALL;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 APP_CON1 READ WRITE NO
6 APP_PDB1 MOUNTED
SQL> alter pluggable database app_pdb1 open;
Pluggable database altered.
SQL> alter session set container=app_pdb1;
Session altered.
SQL> alter pluggable database application all sync;
Pluggable database altered.
SQL> select count(*) from ref_app_user.reference_data;
COUNT(*)
----------
5
墨值悬赏

评论


