Oracle各種版本下“示例資料庫的建立”的建立
Oracle各種版本下“示例資料庫的建立”的建立
1、插入示例方案 PDB :使用 DBCA
在 12.1.0.2 中,可以使用 DBCA 圖形化介面來建立示例 PDB 。
您可以使用 DBCA 插入採用示例方案的新 PDB 。
1.
在
DBCA
中,單擊“
Manage Pluggable Databases
(管理可插入資料庫)”。
2. 然後選擇“ Create a Pluggable Database (建立可插入資料庫)”。
3. 選擇您打算在其中建立新 PDB 的 CDB 。
4. 單擊“ Create Pluggable Database by using PDB File Set (使用 PDB 檔案集建立可插入資料庫)”。瀏覽找到兩個檔案:
- 可插入資料庫後設資料檔案:
$ORACLE_HOME/assistants/dbca/templates/sampleschema.xml
- 可插入資料庫資料檔案備份:
$ORACLE_HOME/assistants/dbca/templates/sampleschema.dfb
5. 定義新 PDB 的名稱和資料檔案的位置。您還可以定義 PDB 使用者,為 PDB 建立新管理員。
6. 單擊“ Next (下一步)”和“ Finish (完成)”。
注意, sampleschema.xml 和 sampleschema.df b 只在 12.1.0.2 中提供,高於該版本的資料庫不再提供這 2 個檔案。
2、靜默建立示例 PDB
示例資料庫中包括了 IX 、 SH 、 BI 、 OE 、 HR 、 PM 、 SCOTT 這幾個使用者。當資料庫版本小於 12.2.0.1 時,一般放在 example 表空間中。從 Oracle 12.2 開始不再提供該示例表空間了,即使在建立語句中加上“ sampleSchema true ”也依然沒有 example 表空間,而會把相關資料放到 SYSAUX 表空間中。
若資料庫版本大於等於 12.2.0.1 時,在建立非 cdb 或包含至少一個 pdb 的 cdb 資料庫時,會建立示例資料庫,但是相關的示例資料位於 SYSAUX 表空間。若資料庫版本小於 12.2.0.1 時,則示例資料位於 EXAMPLE 表空間。 12c 版本的 CDB 資料庫不再包含示例資料庫和示例表空間。
12.1.0.2 版本:
18c 的版本:
靜默建立示例 PDB :
dbca -silent -createpluggabledatabase -sourceDB cdb1212 -pdbName pdbsample -createAsClone True -createPDBFrom RMANBACKUP -pdbBackUpfile '/u06/app/oracle/product/12.1.0/dbhome_1/assistants/dbca/templates/sampleschema.dfb' -pdbMetadataFile '/u06/app/oracle/product/12.1.0/dbhome_1/assistants/dbca/templates/sampleschema.xml' -pdbAdminPassword lhr
注意: sampleschema.xml 和 sampleschema.df b 只在 12.1.0.2 中提供,高於該版本的資料庫不再提供這 2 個檔案。但是,高版本的資料庫依然可以使用這 2 個檔案來建立示例 PDB 。不過需要做以下操作:
1 、刪除 sampleschema.xml 檔案中的行: <APEX>4.2.5.00.08:1</APEX>
2 、高版本建立完成後需要執行升級指令碼: $ORACLE_HOME/bin/dbupgrade -c PDBSAMPLE
3 、刪除 pdb 中的 APEX 元件,過程如下:
alter session set container=pdbsample;
SQL>@?/apex/apxremov_nocdb.sql
4 、修改 pdb 的字符集(原字符集預設為 US7ASCII ,新字符集必須是原字符集的超集),過程如下:
alter session set container=pdbsample;
select userenv('language') from dual;
alter pluggable database pdbsample close immediate;
alter pluggable database pdbsample open restricted;
alter database character set INTERNAL_CONVERT AL32UTF8 ;
alter pluggable database pdbsample close immediate;
alter pluggable database pdbsample open;
或:
alter system enable restricted session;
alter database character set INTERNAL_CONVERT ZHS16GBK ;
alter system DISABLE restricted session;
校驗:
select count(1) from CDB_tables where owner='HR';
select count(1) from scott.emp;
dbca -silent -createpluggabledatabase -h
dbca -createpluggabledatabase -help
一.1.1 CDB 和 PDB 中建立 HR 使用者
從 12.2 開始, $ORACLE_HOME/demo/schema/ 目錄下已經沒有 mksample.sql 檔案,預設只有一個 HR 使用者的建立指令碼。因此,如果只需要安裝 HR 使用者,直接執行預設的指令碼 hr_main.sql 即可。在 12c 中需要在 pdb 中執行指令碼,因為在 CDB 中無法建立 HR 這種普通使用者,指令碼會執行失敗,當然也可以通過修改引數 common_user_prefix 為空來在 CDB 中安裝配置 HR 使用者資料。
@?/demo/schema/human_resources/hr_main.sql HR SYSAUX TEMP /tmp
SYS@CDBLHR> @?/demo/schema/human_resources/hr_main.sql HR SYSAUX TEMP /tmp
specify password for HR as parameter 1:
specify default tablespeace for HR as parameter 2:
specify temporary tablespace for HR as parameter 3:
specify l og path as parameter 4:
......
SYS@CDBLHR> select count(1) from dba_tables where owner='HR';
COUNT(1)
----------
7
一.1.2 CDB 和 PDB 中重建 scott 使用者
scott 使用者的建立在所有版本的資料庫中都沒有變化。
sqlplus / as sysdba
SQL>@$ORACLE_HOME/rdbms/admin/utlsampl.sql
12c 中:
DROP USER SCOTT CASCADE;
DROP USER ADAMS CASCADE;
DROP USER JONES CASCADE;
DROP USER CLARK CASCADE;
DROP USER BLAKE CASCADE;
DROP PUBLIC SYNONYM PARTS;
CREATE USER SCOTT IDENTIFIED BY TIGER;
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT ;
--GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER CONTAINER=ALL ;
CONNECT SCOTT/tiger
CREATE 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;
SYS@CDBLHR> GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER;
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER
*
ERROR at line 1:
ORA-65049: Creation of local user or role is not allowed in this container.
SYS@CDBLHR> show parameter common
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
common_user_prefix string
SYS@CDBLHR> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
[oracle@rhel6lhr env_oracle]$ oerr ora 65049
65049, 00000, "Creation of local user or role is not allowed in this container."
// *Cause: An attempt was made to create a local user or role in CDB$ROOT or
// an application root.
// *Action: If trying to create a common user or role, specify CONTAINER=ALL.
//
[oracle@rhel6lhr env_oracle]$ sas
SQL*Plus: Release 12.2.0.1.0 Production on Mon Dec 3 10:29:14 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SYS@CDBLHR> GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER CONTAINER=ALL ;
Grant succeeded.
3 10g 和 11g 建立示例資料
10G 可能是為了提高安全性,在 dbca 建立資料庫是, custom 定製資料庫後,安裝示例方案的選項是灰色的,不能直接安裝。
可通過以下方式完成。登陸到 sqlplus ,執行 $ORACLE_HOME/demo/schema/mkplug.sql
根據提示輸入新建示例使用者的密碼,
後設資料檔案位置: $ORACLE_HOME/assistants/dbca/templates/example.dmp
備份資料檔案位置: $ORACLE_HOME/assistants/dbca/templates/example01.dfb
資料檔案存放位置:自己指定
指定日誌輸出路徑,執行就 ok 了。
注意:還需要修改指令碼 $ORACLE_HOME/demo/schema/mkplug.sql 才能匯入,比較麻煩。
4 示例資料庫通用建立方式
以上各種辦法,包括使用資料泵匯出匯入都比較麻煩,還涉及到版本的問題。接下來介紹的這種辦法可以在各種版本上執行,已在 10g 到 18c 都測試通過。
原理: 使用純 SQL 指令碼 +SQL*Loader 方式進行匯入示例資料庫。
介紹:
https://github.com/oracle/db-sample-schemas
下載地址: https://github.com/oracle/db-sample-schemas/releases/latest
將壓縮包 db-sample-schemas-12.2.0.1.zip 放在 /soft 目錄下。
1 、 unzip db-sample-schemas-12.2.0.1.zip
2 、 cd db-sample-schemas-12.2.0.1
3 、 perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat
或 #sed -i "s#__SUB__CWD__#$(pwd)#g" `grep __SUB__CWD__ -rl --include="*.sql" ./`
create pluggable database PDBSAMPLE admin user lhr identified by lhr CREATE_FILE_DEST = '/u01/app/oracle/oradata';
alter pluggable database PDBSAMPLE open;
alter session set container=PDBLHR1;
CREATE TABLESPACE example
NOLOGGING
DATAFILE '/u04/oradata/CDBLHR/PDBLHR1/example01.dbf' SIZE 100M REUSE
AUTOEXTEND ON NEXT 640k
MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
-- sqlplus sys/lhr@localhost:1521/PDBSAMPLE as sysdba
-- sqlplus system/lhr@localhost:1521/PDBSAMPLE
@/soft/db-sample-schemas-12.2.0.1/mksample.sql lhr lhr HR OE PM IX SH BI EXAMPLE TEMP /tmp/ localhost:1521/PDBSAMPLE
select con_id,tablespace_name,count(1) from cdb_tables where owner in ('IX','SH','BI','OE','HR','PM') group by con_id,tablespace_name;
select con_id,owner,tablespace_name,count(1) from cdb_tables where owner in ('IX','SH','BI','OE','HR','PM') group by con_id,owner,tablespace_name;
select count(1) from dba_tables where owner in ('IX','SH','BI','OE','HR','PM');
specify password for SYSTEM as parameter 1:
specify password for SYS as parameter 2:
specify password for HR as parameter 3:
specify password for OE as parameter 4:
specify password for PM as parameter 5:
specify password for IX as parameter 6:
specify password for SH as parameter 7:
specify password for BI as parameter 8:
specify default tablespace as parameter 9:
specify temporary tablespace as parameter 10:
specify log file directory (including trailing delimiter) as parameter 11:
specify connect string as parameter 12:
4 刪除示例資料庫
sqlplus system/systempw@connect_string
@/soft/db-sample-schemas-12.2.0.1/drop_sch.sql
Oracle Database Sample Schemas
Copyright (c) 2016 Oracle
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1. Introduction
This repository contains a copy of the Oracle Database sample schemas that are installed with Oracle Database Enterprise Edition 12c. These schemas are used in Oracle documentation to show SQL language concepts. The schemas themselves are documented in Oracle Database Sample Schemas, 12c Release 1 (12.1) .
The schemas are:
-
HR: Human Resources
-
OE: Order Entry
-
PM: Product Media
-
IX: Information Exchange
-
SH: Sales History
-
BI: Business Intelligence
Due to widespread dependence on these scripts in their current form, no pull requests for changes can be accepted.
2. Installing the Samples
CAUTION : Do not install the samples if you already have user accounts named HR, OE, PM, IX, SH or BI.
The installation scripts are designed to run on a database host with Oracle Database 12.1. Privileged database access is required during installation.
The instructions below work on Linux and similar operating systems. Adjust them for other platforms.
An alternative to using this repository is to download and install the Oracle Database 12c Release 1 Examples package for your platform.
2.1. Clone this repository
Login as the Oracle Database software owner and clone the repository, for example
cd $HOMEgit clone https://github.com/oracle/db-sample-schemas.git
or download and extract the ZIP file:
unzip db-sample-schemas.zip
The schema directory should be owned by the Oracle Database software owner.
2.2. Change directory
cd $HOME/db-sample-schemas
2.3. Change all embedded paths to match your working directory
The installation scripts need your current directory embedded in various locations. Use a text editor or the following Perl script to make the changes, replacing occurrences of the token
__SUB__CWD__
with your current working directory, for example
/home/oracle/db-sample-schemas
perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat
2.4. Set the Oracle environment
source /usr/local/bin/oraenv
Note
: Oracle's
sqlldr
utility needs to be in
$PATH
for correct loading of the Product Media (PM) and Sales History (SH) schemas.
2.5. Run the installation script
Review the README.txt for information on passwords and pre-requirements. In particular, verify your default and temporary tablespace names, and choose a password for each schema.
Start SQL*Plus and run the top level installation script as discussed in README.txt :
sqlplus system/systempw@connect_string @mksample systempw syspw hrpw oepw pmpw ixpw shpw bipw users temp /your/path/to/log/ connect_string
Note : Use an absolute path and also append a trailing slash to the log directory name.
Use your current SYSTEM and SYS passwords, and also your actual default and temporary tablespace names. The passwords for the new HR, OE, PM, IX, SH and BI users will be set to the values you specify.
Using a connect string permits connections to non-container databases and pluggable database using the same syntax.
An example of connect strings for databases with services noncdb and pdb:
localhost:1521/noncdb localhost:1521/pdb
2.6. Review the installation logs
Review output in your log directory for errors.
3. Removing the Samples
CAUTION : This will drop user accounts named HR, OE, PM, IX, SH and BI.
3.1. Set the Oracle environment
source /usr/local/bin/oraenv
3.2. Run the schema removal script
sqlplus system/systempw@connect_string @drop_sch.sql
When prompted, enter the SYSTEM password, a log file name, and connect string.
Oracle 12c 提供的樣例Scheme和資料庫物件建立指令碼
在Oracle10g中,如果我們在建立例項時沒有選擇安裝示例,那麼在建立例項之後,還可以通過$ORACLE_HOME/demo/schema 下的指令碼來建立。關於具體的建立方法,官方文件有詳細的說明:
SampleSchema Scripts and Object Descriptions
http://download.oracle.com/docs/cd/B19306_01/server.102/b14198/scripts.htm#sthref77
在11gR1裡也有相關的建立指令碼:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28328/installation.htm#COMSC00002
這些指令碼會建立包括HR,OE等在內的一系列示例使用者。這些使用者資料可以讓我們簡單地進行一些功能測試,並且Oracle很多文件的示例也是使用這些使用者的。
但是在11gR2中我們在$ORACLE_HOME/demo/schema/目錄下已然找不到mksample.sql檔案,並且每個單獨的子目錄中也不再有建立示例使用者的SQL指令碼。
實際上,Oracle將這些示例使用者的安裝獨立到了一個安裝盤中,比如對於Linuxx86-64的安裝檔案可以從OTN上直接下載:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html
其中Oracle Database 11g Release 2Examples就是我們需要的示例使用者安裝檔案。但是現在這份安裝檔案有500多M,如果你並不期望下載這麼大的內容,或者說你僅僅需要HR和OE使用者,那麼可以直接從以下URL中下載現成的SQL指令碼,解壓以後執行即可。
http://st-curriculum.oracle.com/obe/jdev/obe11jdev/11/common/files/sample_schema_scripts.zip
以HR使用者為例:
[oracle@dave.cndba.cn human_resources]$ ls
hr_cre.sql hr_main.sql hr_popul.sql
[oracle@dave.cndba.cn human_resources]$ sqlplus / as sysdba
SQL> @hr_main.sql
1 背景說明
Oracle 11gR2中示例使用者的安裝說明參考如下連結:
Oracle 11gR2 中 示例使用者 安裝說明
http://www.cndba.cn/dave/article/1133
Oracle 12cR2的示例使用者說明可以參考官方手冊:
Introduction to Sample Schemas
http://docs.oracle.com/database/122/COMSC/introduction-to-sample-schemas.htm#COMSC005
多年來,Oracle都是使用簡單的資料庫使用者SCOTT進行文件和培訓的各種示例。該使用者裡主要有2個表: EMP和DEPT,這些表不足以顯示Oracle資料庫和其他Oracle產品的基本特性。
示例資料庫模式為Oracle資料庫的每個版本提供了一個通用的平臺。在Oracle 12cR2中,提供瞭如下測試使用者:
Schema HR – Division Human Resources tracks information about the company employees and facilities. Schema OE – Division Order Entry tracks product inventories and sales of company products through various channels. Schema PM – Division Product Media maintains descriptions and detailed information about each product sold by the company. Schema IX – Division Information Exchange manages shipping through B2B applications. Schema SH – Division Sales tracks business statistics to facilitate business decisions.
但是從11gR2開始,$ORACLE_HOME/demo/schema/目錄下已經沒有mksample.sql檔案,預設只有一個HR使用者的建立指令碼:
[oracle@dave.cndba.cn schema]$ pwd /u01/app/oracle/product/12.2.0/dbhome_1/demo/schema [oracle@dave.cndba.cn schema]$ ls drop_sch.sql human_resources log mk_dir.sql mk_dir.sql.sbs mkplug.sql sted_mkplug.sql.dbl [oracle@dave.cndba.cn schema]$ cd human_resources/ [oracle@dave.cndba.cn human_resources]$ ls hr_analz.sql hr_code.sql hr_comnt.sql hr_cre.sql hr_drop_new.sql hr_drop.sql hr_idx.sql hr_main_new.sql hr_main.sql hr_popul.sql [oracle@dave.cndba.cn human_resources]$
如果想安裝完整的示例資料庫,可以從github上下載:
https://github.com/oracle/db-sample-schemas/releases/latest
2 安裝預設的HR使用者
如果只需要安裝HR使用者,直接執行預設的指令碼即可,示例如下:
在12c中需要在pdb中執行指令碼,因為在CDB中無法建立hr這種普通使用者,指令碼會執行失敗:
CREATE USER hr IDENTIFIED BY oracle * ERROR at line 1: ORA-65096: invalid common user or role name [oracle@dave.cndba.cn admin]$ sqlplus system/oracle@dave SQL*Plus: Release 12.2.0.1.0 Production on Mon Jun 12 20:02:55 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Last Successful login time: Mon Apr 17 2017 05:38:02 +08:00 Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> @?/demo/schema/human_resources/hr_main.sql specify password for HR as parameter 1: Enter value for 1: oracle specify default tablespeace for HR as parameter 2: Enter value for 2: users specify temporary tablespace for HR as parameter 3: Enter value for 3: temp specify log path as parameter 4: Enter value for 4: /tmp PL/SQL procedure successfully completed. User created. User altered. User altered. Grant succeeded. Grant succeeded. Session altered. Session altered. Session altered. ****** Creating REGIONS table .... Table created. Index created. Table altered. ****** Creating COUNTRIES table .... Table created. Table altered. ****** Creating LOCATIONS table .... Table created. Index created. Table altered. Sequence created. ****** Creating DEPARTMENTS table .... Table created. Index created. Table altered. Sequence created. ****** Creating JOBS table .... Table created. Index created. Table altered. ****** Creating EMPLOYEES table .... Table created. Index created. Table altered. Table altered. Sequence created. ****** Creating JOB_HISTORY table .... Table created. Index created. Table altered. ****** Creating EMP_DETAILS_VIEW view ... View created. Commit complete. Session altered. ****** Populating REGIONS table .... 1 row created. 1 row created. 1 row created. 1 row created. ****** Populating COUNTIRES table .... 1 row created. 1 row created. ...... 1 row created. ****** Populating LOCATIONS table .... 1 row created. ...... 1 row created. ****** Populating DEPARTMENTS table .... Table altered. 1 row created. ...... 1 row created. ****** Populating JOBS table .... 1 row created. ...... 1 row created. ****** Populating EMPLOYEES table .... 1 row created. ...... 1 row created. ****** Populating JOB_HISTORY table .... 1 row created. ...... Commit complete. PL/SQL procedure successfully completed. SQL>
3 安裝完整的示例使用者
從github上下載原始碼:
https://github.com/oracle/db-sample-schemas/releases/latest
上傳到資料庫伺服器:
[oracle@dave.cndba.cn demo]$ cp /home/oracle/db-sample-schemas-12.2.0.1.zip $ORACLE_HOME/demo [oracle@dave.cndba.cn demo]$ ls db-sample-schemas-12.2.0.1.zip schema [oracle@dave.cndba.cn demo]$ unzip db-sample-schemas-12.2.0.1.zip [oracle@dave.cndba.cn demo]$ mv schema schema.bak [oracle@dave.cndba.cn demo]$ mv db-sample-schemas-12.2.0.1 schema
具體說明可以參考Readme檔案。
安裝語法:
SQL> @?/demo/schema/mksample <SYSTEM_password> <SYS_password> <HR_password> <OE_password> <PM_password> <IX_password> <SH_password> <BI_password> EXAMPLE TEMP $ORACLE_HOME/demo/schema/log/ localhost:1521/pdb
使用命令:
SQL> @mksample oracle oracle oracle oracle oracle oracle oracle oracle dave temp '/tmp/log/' dave
如果執行執行會報如下錯誤,這裡是__SUB__CWD__路徑不對:
SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_cre.sql" SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_popul.sql" SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_idx.sql" SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_code.sql" SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_comnt.sql" SP2-0310: unable to open file "__SUB__CWD__/human_resources/hr_analz.sql" not spooling currently
上面的錯誤顯示不能開啟__SUB__CWD__/目錄下的相關指令碼檔案,檢視sql指令碼檔案:
@__SUB__CWD__/order_entry/oe_main.sql &&password_oe &&default_ts &&temp_ts &&password_hr &&password_sys __SUB__CWD__/order_entry/ &&logfile_dir &vrs &&connect_string
這裡我們需要將__SUB__CWD__/替換成指令碼的絕對路徑即可。
[oracle@dave.cndba.cn schema]$ sed -i "s#__SUB__CWD__#$(pwd)#g" `grep __SUB__CWD__ -rl --include="*.sql" ./` [oracle@dave.cndba.cn schema]$ ls bus_intelligence drop_sch.sql.bak LICENSE.md mkplug.sql mksample.sql.bak mkverify.sql product_media sales_history CONTRIBUTING.md human_resources mk_dir.sql mkplug.sql.bak mkunplug.sql mkverify.sql.bak README.md shipping drop_sch.sql info_exchange mk_dir.sql.bak mksample.sql mkunplug.sql.bak order_entry README.txt [oracle@dave.cndba.cn schema]$ cat mksample.sql … @/u01/app/oracle/product/12.1.0/db_1/demo/schema/order_entry/oe_main.sql &&password_oe &&default_ts &&temp_ts &&password_hr &&password_sys /u01/app/oracle/product/12.1.0/db_1/demo/schema/order_entry/ &&logfile_dir &vrs &&connect_string ..
路勁已經替換成絕對路徑了。 然後在執行:
[oracle@dave.cndba.cn schema]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Jun 13 13:37:06 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> @?/demo/schema/mksample oracle oracle oracle oracle oracle oracle oracle oracle dave temp '/tmp/log/' dave specify password for SYSTEM as parameter 1: specify password for SYS as parameter 2: specify password for HR as parameter 3: specify password for OE as parameter 4: specify password for PM as parameter 5: specify password for IX as parameter 6: specify password for SH as parameter 7: specify password for BI as parameter 8: specify default tablespace as parameter 9: specify temporary tablespace as parameter 10: specify log file directory (including trailing delimiter) as parameter 11: specify connect string as parameter 12: Sample Schemas are being created ... mkdir: cannot create directory ‘/tmp/log/’: File exists …… Table cardinality relational and object tables OWNER TABLE_NAME NUM_ROWS ------ ------------------------------ ---------- HR COUNTRIES 25 HR DEPARTMENTS 27 HR EMPLOYEES 107 HR JOBS 19 HR JOB_HISTORY 10 HR LOCATIONS 23 HR REGIONS 4 IX AQ$_ORDERS_QUEUETABLE_G 0 IX AQ$_ORDERS_QUEUETABLE_H 2 IX AQ$_ORDERS_QUEUETABLE_I 2 IX AQ$_ORDERS_QUEUETABLE_L 2 IX AQ$_ORDERS_QUEUETABLE_S 4 IX AQ$_ORDERS_QUEUETABLE_T 0 IX AQ$_STREAMS_QUEUE_TABLE_C 0 IX AQ$_STREAMS_QUEUE_TABLE_G 0 IX AQ$_STREAMS_QUEUE_TABLE_H 0 IX AQ$_STREAMS_QUEUE_TABLE_I 0 IX AQ$_STREAMS_QUEUE_TABLE_L 0 IX AQ$_STREAMS_QUEUE_TABLE_S 1 IX AQ$_STREAMS_QUEUE_TABLE_T 0 IX ORDERS_QUEUETABLE IX STREAMS_QUEUE_TABLE IX SYS_IOT_OVER_75148 0 IX SYS_IOT_OVER_75177 0 OE ACTION_TABLE 132 OE CATEGORIES_TAB 22 OE CUSTOMERS 319 OE INVENTORIES 1112 OE LINEITEM_TABLE 2232 OE ORDERS 105 OE ORDER_ITEMS 665 OE PRODUCT_DESCRIPTIONS 8640 OE PRODUCT_INFORMATION 288 OE PRODUCT_REF_LIST_NESTEDTAB 288 OE PROMOTIONS 2 OE PURCHASEORDER 132 OE SUBCATEGORY_REF_LIST_NESTEDTAB 21 OE WAREHOUSES 9 PM ONLINE_MEDIA 9 PM PRINT_MEDIA 4 PM TEXTDOCS_NESTEDTAB 12 SH CAL_MONTH_SALES_MV 48 SH CHANNELS 5 SH COSTS 82112 SH COUNTRIES 23 SH CUSTOMERS 55500 SH DR$SUP_TEXT_IDX$I SH DR$SUP_TEXT_IDX$K SH DR$SUP_TEXT_IDX$N SH DR$SUP_TEXT_IDX$R SH DR$SUP_TEXT_IDX$U SH FWEEK_PSCAT_SALES_MV 11266 SH PRODUCTS 72 SH PROMOTIONS 503 SH SALES 918843 SH SALES_TRANSACTIONS_EXT 916039 SH SUPPLEMENTARY_DEMOGRAPHICS 4500 SH TIMES 1826 58 rows selected.
十幾年以來,從Oracle Database 9i到10g,11g,再到12c,每一次伴隨著Oracle版本的升級更新,在瞭解和學習Oracle Database的新特性時,都少不了使用的Oracle Database本身提供的SCOTT使用者及其資料庫物件;HR使用者及其資料庫物件。在Oracle 12c中,安裝完Oracle 12c 資料庫後,需要另外獨立安裝Oracle提供的樣例資料庫物件。Oracle官方也提供了專門的文件,可以參考連結:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/comsc/introduction-to-sample-schemas.html#GUID-844E92D8-A4C8-4522-8AF5-761D4BE99200
從Github上獲取安裝檔案:Oracle Database 12.2.0.1 Sample Schemas
https://github.com/oracle/db-sample-schemas/releases/tag/v12.2.0.1
Oracle 12c 官方文件這樣描述:
示例資料庫架構為Oracle資料庫的每個版本中的示例提供了一個通用的平臺。樣本模式是一組相互關聯的資料庫模式。這個集合提供了複雜性的方法:
HR:此模式的擴充套件支援Oracle Internet目錄演示。
OE:對於處理中間複雜度問題是有用的。在該模式中可以使用許多資料型別,包括非標量資料型別。
OC:是在模式OE內構建的物件關聯式資料庫物件的集合。
PM:專用於多媒體資料型別。
IX:Information Exchange(IX)下收集的一組模式可用於演示Oracle高階佇列功能。
SH:銷售歷史(SH)被設計為允許大量資料的演示。對該模式的擴充套件為高階分析處理提供支援。
在學習安裝Oracle 12c 的Sample Scheme時需要注意的問題
-
首先下載壓縮檔案:db-sample-schemas-12.2.0.1.zip
-
解壓後獲得目錄:db-sample-schemas-12.2.0.1
-
閱讀Readme檔案
-
修改一些檔案內容中的目錄
-
執行指令碼檔案
SQL> @?/demo/schema/mksample <SYSTEM_password> <SYS_password>
<HR_password> <OE_password> <PM_password> <IX_password>
<SH_password> <BI_password> EXAMPLE TEMP
$ORACLE_HOME/demo/schema/log/ localhost:1521/pdb
這裡需要提供11個引數的值,包括:
SYSTEM使用者的密碼,SYS使用者的密碼,HR使用者密碼,OE使用者密碼,PM使用者密碼,IX使用者密碼,SH使用者密碼,BI使用者密碼,需要使用的表空間的名稱,臨時表空間的名稱,日誌檔案目錄,以及連線字串(格式:localhost:1521/pdb)
其中,連線字串中pdb是你的Pluggable 資料庫的服務名,例如:
@mksample lhr lhr HR OE PM IX SH BI EXAMPLE TEMP $ORACLE_HOME/demo/schema/log/ localhost:1521/PDBLHR1
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 (滿) 、618766405 ● weixin群:可加我weixin,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ) ,註明新增緣由 ● 於 2018-12-01 06:00 ~ 2018-12-31 24:00 在魔都完成 ● 最新修改時間:2018-12-01 06:00 ~ 2018-12-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2222411/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL建立資料庫的兩種方法MySql資料庫
- 資料庫資料恢復-ORACLE資料庫的常見故障&各種故障下的資料恢復可能性資料庫資料恢復Oracle
- oracle 10g建立資料庫鏈的簡化Oracle 10g資料庫
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- 【AWR】Oracle資料庫建立awr基線Oracle資料庫
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- 使用免費的Oracle雲服務-建立ATP資料庫Oracle資料庫
- git針對指定資料夾建立版本庫Git
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- oracle資料庫使用者建立步驟Oracle資料庫
- 揭祕Oracle雲(一):建立雲資料庫Oracle資料庫
- oracle資料庫的啟動關閉與各種服務Oracle資料庫
- 建立資料庫資料庫
- 揭祕Oracle雲(二):建立自治雲資料庫Oracle資料庫
- 建立一種新的資料型別資料型別
- 在 mysql 下 建立新的資料庫和對應的表MySql資料庫
- 建立資料庫表資料庫
- Mysql建立資料庫MySql資料庫
- Oracle 對某列的部分資料建立索引Oracle索引
- Git建立Repository版本庫Git
- 使用免費的Oracle雲服務-建立並使用ADW資料庫Oracle資料庫
- 通過svn命令實現建立版本庫下的資料夾,並且可以操作訪問
- 海量IT資料 + 各種平臺下的Oracle安裝檔案 + 公開課錄影 + 各種視訊教程資料Oracle
- js建立物件的各種方法以及優缺點JS物件
- 2.5.1 關於建立資料庫的子句資料庫
- sql.bsq與資料庫的建立SQL資料庫
- PostgreSQL:資料庫的建立與刪除SQL資料庫
- 【BUILD_ORACLE】Oracle 19c RAC搭建(六)建立RAC資料庫UIOracle資料庫
- SQL server資料庫建立程式碼 filegroup檔案組修改的示例程式碼SQLServer資料庫
- XamarinSQLite教程建立資料庫aSQLite資料庫
- 建立資料mysql庫流程MySql
- 小黑框建立資料庫資料庫
- 資料庫 建立 3表資料庫
- mongodb 如何建立資料庫MongoDB資料庫
- 資料庫之建立索引資料庫索引
- sql統計各種奇葩的資料庫表資料SQL資料庫
- 教你幾招,快速建立 MySQL 五百萬級資料,愉快的學習各種優化技巧MySql優化
- oracle dg庫資料檔案建立失敗ORA-01111Oracle