データベース技術調査ブログ

LinuxやPostgreSQL、Oracleデータベース、AWSの知識をアウトプットしていきます

Oracle検証環境構築手順~白本環境構築スクリプトの実行~

本記事は次の記事の中の手順です。
jimatomo.hatenablog.com


前の記事
jimatomo.hatenablog.com




6-1) スクリプトのダウンロード

あとはスクリプトをダウンロードして実行するだけです!
しかしながら、スクリプトWindows向けに作られているのでいろいろ困ります。

とはいえ、とりあえずはダウンロードしましょう。

6-2) 解凍して文字コードを変更します

ダウンロードした「cretab.zip」を解凍します。

解凍はwindowsの基本機能で大丈夫です。



解凍すると「cretab.sql」 がいるので、これをサクラエディタで開きます。
メニューバーの「ファイル」>「名前を付けて保存」でウィンドウを開きます。

f:id:jimatomo:20190527213045j:plain
サクラエディタ以外のテキストエディタでもできると思います

文字コードと改行コードを選択して保存をクリックします。

文字コードUTF-8
改行コード:LF (Unix)

f:id:jimatomo:20190527213319j:plain
上書きしちゃいましょう!



6-3) アップロードする

スクリプト実行時のログファイルが、カレントディレクトリに出力されるので、作業ディレクトリを作成しておきましょう。

TeraTermで接続して格納先へ移動
[oracle@ol76-19c ~]$ pwd
/home/oracle
[oracle@ol76-19c ~]$
[oracle@ol76-19c ~]$ ls -l
合計 0
[oracle@ol76-19c ~]$ 
[oracle@ol76-19c ~]$ mkdir cretab
[oracle@ol76-19c ~]$ ls -l
合計 0
drwxr-xr-x. 2 oracle oinstall 6  5月 26 12:15 cretab
[oracle@ol76-19c ~]$ 
[oracle@ol76-19c ~]$ cd cretab
[oracle@ol76-19c cretab]$ pwd
/home/oracle/cretab
[oracle@ol76-19c cretab]$ ls -l
合計 0
[oracle@ol76-19c cretab]$ 
[oracle@ol76-19c cretab]$ #SCPでcretab.zipをアップロード
[oracle@ol76-19c cretab]$ 
[oracle@ol76-19c cretab]$ ls -l
合計 12
-rw-r--r--. 1 root root 10313  5月 26 12:25 cretab.sql
[oracle@ol76-19c cretab]$ 
[oracle@ol76-19c cretab]$ # マルチテナント対応およびAL32UTF8対応(VARCHAR2のバイト数を1.5倍にする)
[oracle@ol76-19c cretab]$ vi cretab.sql
[oracle@ol76-19c cretab]$ 
viエディタのNormalモードで以下の置換を実施

1行ずつコピペしてください。

:%s/VARCHAR2(14)/VARCHAR2(21)/g
:%s/VARCHAR2(10)/VARCHAR2(15)/g
:%s/VARCHAR2(20)/VARCHAR2(30)/g
:%s/VARCHAR2(8)/VARCHAR2(12)/g
:%s/VARCHAR2(30)/VARCHAR2(45)/g
:%s/VARCHAR2(12)/VARCHAR2(18)/g
:%s/VARCHAR2(6)/VARCHAR2(9)/g
:%s/CONNECT ora01\/oracle/CONNECT ora01\/oracle\@ORCLPDB1/g


6-4) cretab.sqlの実行

状態を確認しておきます
[oracle@ol76-19c cretab]$ sqllplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 日 5月 26 12:54:24 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> 
SQL> show user
ユーザーは"SYS"です。
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> 
SQL> SELECT instance_name, status FROM v$instance;

INSTANCE_NAME	 STATUS
---------------- ------------
ORCLCDB 	 OPEN

SQL> 
SQL> col name for a15
SQL> col open_mode for a15
SQL> SELECT name, open_mode FROM v$pdbs;

NAME		OPEN_MODE
--------------- ---------------
PDB$SEED	READ ONLY
ORCLPDB1	READ WRITE

SQL> 
SQL> -- 接続先コンテナをORACLPDB1に切り替え
SQL> ALTER SESSION SET CONTAINER = orclpdb1;

セッションが変更されました。

SQL> 
SQL> -- ORCLPDB1に接続されていることを確認
SQL> show con_name

CON_NAME
------------------------------
ORCLPDB1
SQL> 
SQL> -- ユーザの確認
SQL> set lines 200
SQL> set pages 50
SQL> col username for a30
SQL> col account_status for a20
SQL> col default_tablespace for a20
SQL> SELECT
  2    username
  3  , account_status
  4  , default_tablespace
  5  FROM
  6    dba_users;

USERNAME		       ACCOUNT_STATUS	    DEFAULT_TABLESPACE
------------------------------ -------------------- --------------------
SYS			       OPEN		    SYSTEM
SYSTEM			       OPEN		    SYSTEM
OUTLN			       LOCKED		    SYSTEM
LBACSYS 		       LOCKED		    SYSTEM
XS$NULL 		       EXPIRED & LOCKED     SYSTEM
DBSFWUSER		       LOCKED		    SYSAUX
GSMADMIN_INTERNAL	       LOCKED		    SYSAUX
DBSNMP			       LOCKED		    SYSAUX
APPQOSSYS		       LOCKED		    SYSAUX
GGSYS			       LOCKED		    SYSAUX
XDB			       LOCKED		    SYSAUX
WMSYS			       LOCKED		    SYSAUX
MDSYS			       LOCKED		    SYSAUX
OLAPSYS 		       LOCKED		    SYSAUX
DVSYS			       LOCKED		    SYSAUX
DVF			       LOCKED		    SYSAUX
ANONYMOUS		       EXPIRED & LOCKED     SYSAUX
CTXSYS			       EXPIRED & LOCKED     SYSAUX
PDBADMIN		       OPEN		    USERS
AUDSYS			       LOCKED		    USERS
SYSBACKUP		       LOCKED		    USERS
SYSDG			       LOCKED		    USERS
SYSKM			       LOCKED		    USERS
SYSRAC			       LOCKED		    USERS
GSMUSER 		       LOCKED		    USERS
DIP			       LOCKED		    USERS
REMOTE_SCHEDULER_AGENT	       LOCKED		    USERS
ORACLE_OCM		       LOCKED		    USERS
SYS$UMF 		       LOCKED		    USERS
GSMCATUSER		       LOCKED		    USERS
OJVMSYS 		       LOCKED		    USERS
ORDSYS			       LOCKED		    USERS
ORDDATA 		       LOCKED		    USERS
ORDPLUGINS		       LOCKED		    USERS
SI_INFORMTN_SCHEMA	       LOCKED		    USERS
MDDATA			       LOCKED		    USERS

36行が選択されました。

SQL> 
SQL> ORA01ユーザがいないことを確認
SQL> SELECT
  2    username
  3  , account_status
  4  , default_tablespace
  5  FROM
  6    dba_users
  7  WHERE
  8    username = 'ORA01';

レコードが選択されませんでした。

SQL> 
「cretab.sql」の実行
SQL> -- cretab.sqlの実行
SQL> @cretab.sql

(省略)

SQL> 
実行後の確認
SQL> show user
ユーザーは"ORA01"です。
SQL> show con_name

CON_NAME
------------------------------
ORCLPDB1
SQL> 
SQL> -- 作成された表の確認
SQL> col table_name for a20
SQL> SELECT
  2    table_name
  3  , tablespace_name
  4  , status
  5  FROM user_tables;

TABLE_NAME	     TABLESPACE_NAME		    STATUS
-------------------- ------------------------------ --------
DEPARTMENTS	     USERS			    VALID
EMPLOYEES	     USERS			    VALID
SALGRADES	     USERS			    VALID
CUSTOMERS	     USERS			    VALID
PRODUCTS	     USERS			    VALID
ORDERS		     USERS			    VALID
ORD_DETAILS	     USERS			    VALID

7行が選択されました。

SQL> 
SQL> -- 作成された表の情報確認SQLの作成
SQL> SELECT 'SELECT * FROM ' || table_name || ';'
  2  FROM   user_tables;

'SELECT*FROM'||TABLE_NAME||';'
-----------------------------------------------------------------------------------------------------------------------------------------------
SELECT * FROM DEPARTMENTS;
SELECT * FROM EMPLOYEES;
SELECT * FROM SALGRADES;
SELECT * FROM CUSTOMERS;
SELECT * FROM PRODUCTS;
SELECT * FROM ORDERS;
SELECT * FROM ORD_DETAILS;

7行が選択されました。

SQL> 
SQL> SELECT * FROM DEPARTMENTS;

    DEPTNO DNAME		 LOC
---------- --------------------- ---------------
        10 管理                  大手町
        20 研究開発              横浜
        30 営業                  品川
        40 財務                  東京

SQL> 
SQL> SELECT * FROM EMPLOYEES;

     EMPNO ENAME	   YOMI 					 JOB			   MGR HIREDATE        SAL	 COMM	  DEPTNO
---------- --------------- --------------------------------------------- ------------------ ---------- -------- ---------- ---------- ----------
      1001 佐藤            sato                                          社長                          01-02-25     500000                    10
      1002 鈴木            suzuki                                        事務                     1013 00-03-26     200000                    20
      1003 高橋            takahashi                                     営業                     1007 00-05-30     300000      30000         30
      1004 田中            tanaka                                        営業                     1007 02-06-02     355000      50000         30
      1005 渡辺            watanabe                                      部長                     1001 02-07-11     280000                    20
      1006 伊藤            ito                                           営業                     1007 08-01-06     300000     140000         30
      1007 山本            yamamoto                                      部長                     1001 00-08-09     285000                    30
      1008 中村            nakamura                                      部長                     1001 00-09-17     245000                    10
      1009 小林            kobayashi                                     主任                     1005 06-10-21     300000                    20
      1010 斉藤            saito                                         営業                     1007 01-12-17     150000          0         30
      1011 加藤            kato                                          事務                     1009 06-10-21     110000                    20
      1012 吉田            yoshida                                       事務                     1007 09-03-13     295000                    30
      1013 山田            yamada                                        主任                     1005 01-03-13     280000                    20
      1014 佐々木          sasaki                                        事務                     1008 04-05-02     230000                    10

14行が選択されました。

SQL> 
SQL> SELECT * FROM SALGRADES;

G      LOSAL	  HISAL
- ---------- ----------
A     100000	 190000
B     190001	 280000
C     280001	 370000
D     370001	 460000
E     460001	 999999

SQL> 
SQL> SELECT * FROM CUSTOMERS;

    CUSTNO CNAME					 ADDRESS				       PHONE		  CREDIT_RA
---------- --------------------------------------------- --------------------------------------------- ------------------ ---------
      1000 品川商事                                      東京都港区1-x-x                          03-1234-xxxx       優良
      1001 横浜商店                                      横浜市磯子区2-x-x                        045-753-xxxx       要注意
      1002 川口や                                        川口市本町1-x-xx                        048-336-xxxx       要注意
      1003 ○×商店                                        横浜市鶴見区2-xx                          045-505-xxxx       良
      1004 川崎ストア                                    川崎市川崎区10-xx                        044-567-xxxx       優良
      1005 DBマート                                    東京都板橋区9-xx                          03-3334-xxxx       優良
      1006 大手町文具                                    東京都千代田区1-x-x                      03-2236-xxxx       良
      1007 バラエティグッズ                              さいたま市中央区xxx                        048-556-xxxx       良
      1008 ワールドストア                                横浜市神奈川区xx-x                        045-654-xxxx       要注意
      1009 DBストア                                    東京都渋谷区xx-xx                        03-5789-xxxx       要注意

10行が選択されました。

SQL> 
SQL> SELECT * FROM PRODUCTS;

PRO PNAME					       PRICE
--- --------------------------------------------- ----------
A01 100円ボールペン                                      100
A02 芯強シャープペンシル                                 100
A03 10色ボールペン                                       300
A04 最高級万年筆                                        1000
A05 なないろ鉛筆                                          30
A06 健康ボールペン                                       500
B01 無地A4ノート                                         160
B02 メルヘンA4ノート                                     160
B03 仮面ライダーメモ帳                                   150
B04 暗記スムーズノート                                   200
B05 無地B5ノート                                         160
B06 ポケモンB5ノート                                     160
C01 キレイ印刷A4用紙                                     500
C02 キレイ印刷B5用紙                                     500
C03 キレイ印刷A3用紙                                     600
C04 ソコソコキレイA4用紙                                 350
C05 ソコソコキレイB5用紙                                 350
C06 目に優しいA4用紙                                     400
D01 ねりねり消しゴム                                      50
D02 なんでも消去消しゴム                                 100
D03 キエナーイ消しゴム                                   200
D04 100%マッシロ修正液                                   350
D15 カレーの香り消しゴム                                  80
D16 いちごの香り消しゴム                                  80

24行が選択されました。

SQL> 
SQL> SELECT * FROM ORDERS;

     ORDNO     CUSTNO DATE_ORD DATE_SHI SALESMAN_NO PAYMENT_TYPE
---------- ---------- -------- -------- ----------- ---------------
         1       1001 09-12-20 09-12-27        1003 クレジット
         2       1001 09-12-21 09-12-27        1003 クレジット
         3       1001 10-01-10 10-01-17        1003 クレジット
         4       1002 10-01-11 10-01-18        1010 クレジット
         5       1008 10-01-15 10-01-22        1003 クレジット
         6       1005 10-01-20 10-01-27        1003 クレジット
         7       1007 10-01-22 10-01-29        1006 クレジット
         8       1006 10-01-22 10-01-29        1010 現金
         9       1007 10-01-25 10-02-03        1006 クレジット
        10       1003 10-02-15 10-02-22        1003 クレジット
        11       1007 10-02-20 10-02-27        1006 クレジット
        12       1006 10-03-16                 1010 現金
        13       1009 10-04-02                 1006 現金

13行が選択されました。

SQL> 
SQL> SELECT * FROM ORD_DETAILS;

     ORDNO PRO	 QUANTITY
---------- --- ----------
	 1 A02	       30
	 1 C01	       20
	 2 B01		5
	 2 B06	       10
	 2 B02	       10
	 2 A01		5
	 3 C01	       10
	 3 C02	       10
	 3 A04	       10
	 3 B01	       20
	 4 A01	       10
	 4 B01		5
	 4 A02	       10
	 5 B06	       15
	 5 B01	       15
	 6 A01	       30
	 6 B06	       20
	 6 A04	       20
	 6 A02	       50
	 6 B01	       20
	 7 A01	       10
	 7 A02		5
	 7 B01		8
	 8 B06		5
	 8 B02		5
	 9 A01	       10
	 9 D01	       30
	 9 D15	       30
	10 B06	       30
	10 C02	       50
	10 A01	       10
	11 A02	       50
	11 B01	       20
	11 D01	       10
	11 B02		5
	12 C02	       10
	12 A05	       10
	12 D16	       20
	12 D04	       10
	12 B02	       15
	13 A01	       20
	13 A02	       25

42行が選択されました。

SQL> 


以上で、白本学習環境構築が完了しました!
お疲れ様でした(*^▽^*)

最後におまけ

SQL Developerのインストールもしておくといいかと思います。

以下に簡単な手順を紹介しておきます。

②ダウンロードしたzipファイルを解凍します。

(「sqldeveloper」というフォルダができます。)

③「sqldeveloper」フォルダを「C:\」以下の任意のディレクトリに移動します。

(おすすめは「C:\Program Files\Oracle」です。VVirtualBoxのソフトウェアと同じディレクトリです。)
※別のドライブに入れるとうまく起動しなかったので、システム関係のソフトウェアが入っているドライブと同じにしておくほうが安全です)

④「sqldeveloper」フォルダ直下の「sqldeveloper.exe」のショートカットを作成します。
⑤「sqldeveloper.exe」を実行して初回の設定をします。
⑥あとは以下のPDFを参考にいろいろ触ってみましょう!

https://www.oracle.com/technetwork/jp/ondemand/database/db-technique/e-9-sql-developer-1484606-ja.pdf

ホストから接続

ホストから接続する際には以下のコマンドでリスナーを起動して状態を確認しましょう

# oracleユーザで実施
lsnrctl start
lsnrctl status


以上ですべての説明が完了しました!

この環境で遊び倒しましょう(/・ω・)/


前の記事
jimatomo.hatenablog.com

もとの記事
jimatomo.hatenablog.com