標籤:span head csdn odi rest img options 12c 技術
轉載:http://www.cnblogs.com/xqzt/p/5034375.html
對於熟悉Oracle或者接觸過Oracle的人,scott這個使用者大家一定相當的熟悉。12c推出了可插拔資料庫,在一個容器cdb中以多租戶的形式同時存在多個資料庫pdb。pdb中預設不包含scott使用者。
為了做資料泵的實驗,需要一個測試使用者,因此需要在pdb中添加scott使用者。
oracle 12c內建了scott的指令碼,$ORACLE_HOME/rdbms/admin/utlsampl.sql 內容如下:
Rem Copyright (c) 1990, 2006, Oracle. All rights reserved. Rem NAMEREM UTLSAMPL.SQLRem FUNCTIONRem NOTESRem MODIFIEDRem lburgess 04/02/06 - lowercase passwords Rem menash 02/21/01 - remove unnecessary users for security reasonsRem gwood 03/23/99 - make all dates Y2K compliantRem jbellemo 02/27/97 - dont connect as systemRem akolk 08/06/96 - bug 368261: Adding date formatsRem glumpkin 10/21/92 - Renamed from SQLBLD.SQL Rem blinden 07/27/92 - Added primary and foreign keys to EMP and DEPTRem rlim 04/29/91 - change char to varchar2 Rem mmoore 04/08/91 - use unlimited tablespace priv Rem pritto 04/04/91 - change SYSDATE to 13-JUL-87 Rem Mendels 12/07/90 - bug 30123;add to_date calls so language independentRemrem rem $Header: utlsampl.sql 02-apr-2006.21:13:01 lburgess Exp $ sqlbld.sql rem SET TERMOUT OFFSET ECHO OFFrem CONGDON Invoked in RDBMS at build time. 29-DEC-1988rem OATES: Created: 16-Feb-83 DROP USER SCOTT CASCADE;DROP USER ADAMS CASCADE;DROP USER JONES CASCADE;DROP USER CLARK CASCADE;DROP USER BLAKE CASCADE;GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY tiger;DROP PUBLIC SYNONYM PARTS;CONNECT SCOTT/tigerCREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ;CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);INSERT INTO DEPT VALUES (10,‘ACCOUNTING‘,‘NEW YORK‘);INSERT INTO DEPT VALUES (20,‘RESEARCH‘,‘DALLAS‘);INSERT INTO DEPT VALUES (30,‘SALES‘,‘CHICAGO‘);INSERT INTO DEPT VALUES (40,‘OPERATIONS‘,‘BOSTON‘);INSERT INTO EMP VALUES(7369,‘SMITH‘,‘CLERK‘,7902,to_date(‘17-12-1980‘,‘dd-mm-yyyy‘),800,NULL,20);INSERT INTO EMP VALUES(7499,‘ALLEN‘,‘SALESMAN‘,7698,to_date(‘20-2-1981‘,‘dd-mm-yyyy‘),1600,300,30);INSERT INTO EMP VALUES(7521,‘WARD‘,‘SALESMAN‘,7698,to_date(‘22-2-1981‘,‘dd-mm-yyyy‘),1250,500,30);INSERT INTO EMP VALUES(7566,‘JONES‘,‘MANAGER‘,7839,to_date(‘2-4-1981‘,‘dd-mm-yyyy‘),2975,NULL,20);INSERT INTO EMP VALUES(7654,‘MARTIN‘,‘SALESMAN‘,7698,to_date(‘28-9-1981‘,‘dd-mm-yyyy‘),1250,1400,30);INSERT INTO EMP VALUES(7698,‘BLAKE‘,‘MANAGER‘,7839,to_date(‘1-5-1981‘,‘dd-mm-yyyy‘),2850,NULL,30);INSERT INTO EMP VALUES(7782,‘CLARK‘,‘MANAGER‘,7839,to_date(‘9-6-1981‘,‘dd-mm-yyyy‘),2450,NULL,10);INSERT INTO EMP VALUES(7788,‘SCOTT‘,‘ANALYST‘,7566,to_date(‘13-JUL-87‘,‘dd-mm-rr‘)-85,3000,NULL,20);INSERT INTO EMP VALUES(7839,‘KING‘,‘PRESIDENT‘,NULL,to_date(‘17-11-1981‘,‘dd-mm-yyyy‘),5000,NULL,10);INSERT INTO EMP VALUES(7844,‘TURNER‘,‘SALESMAN‘,7698,to_date(‘8-9-1981‘,‘dd-mm-yyyy‘),1500,0,30);INSERT INTO EMP VALUES(7876,‘ADAMS‘,‘CLERK‘,7788,to_date(‘13-JUL-87‘, ‘dd-mm-rr‘)-51,1100,NULL,20);INSERT INTO EMP VALUES(7900,‘JAMES‘,‘CLERK‘,7698,to_date(‘3-12-1981‘,‘dd-mm-yyyy‘),950,NULL,30);INSERT INTO EMP VALUES(7902,‘FORD‘,‘ANALYST‘,7566,to_date(‘3-12-1981‘,‘dd-mm-yyyy‘),3000,NULL,20);INSERT INTO EMP VALUES(7934,‘MILLER‘,‘CLERK‘,7782,to_date(‘23-1-1982‘,‘dd-mm-yyyy‘),1300,NULL,10);CREATE TABLE BONUS ( ENAME VARCHAR2(10) , JOB VARCHAR2(9) , SAL NUMBER, COMM NUMBER ) ;CREATE TABLE SALGRADE ( GRADE NUMBER, LOSAL NUMBER, HISAL NUMBER );INSERT INTO SALGRADE VALUES (1,700,1200);INSERT INTO SALGRADE VALUES (2,1201,1400);INSERT INTO SALGRADE VALUES (3,1401,2000);INSERT INTO SALGRADE VALUES (4,2001,3000);INSERT INTO SALGRADE VALUES (5,3001,9999);COMMIT;EXIT
下面就利用這段指令碼,在pdb中恢複scott
1、為pdb添加tnsnames (步驟2後面用的到)
[[email protected] admin]$ pwd/data/app/oracle/product/12.1.0/dbhome_1/network/admin[[email protected] admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /data/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =pdborcl) ) )
2、修改utlsampl.sql
將 connect scott/tiger 改為 connect scott/[email protected]
3、使用sys登入plsql,切換到要匯入的容器pdb ,執行 utlsampl.sql
切換到容器pdborcl
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBORCL READ WRITE NOSQL> alter session set container=pdborcl; ##切換到pdbSession altered.
確認使用sys串連到了pdborcl
SQL> alter session set container=pdborcl;Session altered.SQL> show userUSER is "SYS"SQL> show con_name;CON_NAME------------------------------PDBORCL
執行utlsampl.sql 指令碼
SQL> @$ORACLE_HOME/rdbms/admin/utlsampl.sql Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
4、驗證匯入結果
查詢是否存在scott使用者
SQL> alter session set container=pdborcl;Session altered.SQL> select username from dba_users where username = ‘SCOTT‘;USERNAME--------------------------------------------------------------------------------SCOTT
以scott登入 查詢資料:
問題是在oracle sql developer工具是串連scott也出現類似錯誤:
錯誤1
錯誤2
一般就上面兩種錯誤,解決辦法如:
SQL> conn scott/[email protected] Connected.SQL> select table_name from user_tables;TABLE_NAME--------------------------------------------------------------------------------DEPTEMPBONUSSALGRADESQL> select * from DEPT; DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
Oracle 12c 添加scott使用者