| [[Oracle]] | [[Oracle Database10g]] | [[SQL Plus]] | [[Oracle.DataAccess.Client]] |
==Oracle Database19c==
[https://docs.oracle.com/cd/F19136_01/index.html Oracle Database 19c]
*[https://www.oracle.com/database/technologies/oracle-database-software-downloads.html ダウンロード]
===Windows===
----
*[https://docs.oracle.com/cd/F19136_01/ntdbi/about-image-based-database-installation.html#GUID-0315AA15-1C03-4E96-B801-3A8E5F5D4B39 Windowsへのインストール]
<blockquote>解凍したイメージのディレクトリにPATHが通されれて利用されるため、適切な場所に解凍する</blockquote>[[File:Oracle_inst001.png|200px500px]] [[File:Oracle_inst002.png|200px500px]] [[File:Oracle_inst003.png|200px500px]] [[File:Oracle_inst004.png|200px500px]] [[File:Oracle_inst005.png|200px500px]] [[File:Oracle_inst006.png|200px500px]]
*終了'''EM Express'''のURLが表示される
[[File:Oracle_inst007.png|200px500px]]
==管理==
[https://docs.oracle.com/cd/F19136_01/admqs/index.html 2日でデータベース管理者]
===[[SQL Plus]]に管理者接続===----====管理者接続====----*CDBにローカル接続(OS認証)
<pre>
> sqlpuls / as sysdba
</pre>
*CDBにローカル接続(パスワード認証)<pre>> sqlpuls system/ </pre> ====簡易接続====----<pre>> connect ユーザー名/パスワード@ホスト名[:リスナーポート]/サービス名> sqlplus docweb/{password}@taisetsu.local:1521/orclpdb</pre> ==マルチテナント==https://www.ashisuto.co.jp/tech-note/article/20130912_oracle.html===CDBの確認===----<pre>SQL> show con_name CON_NAME------------------------------CDB$ROOT</pre> ===起動/停止 (コンテナ以外)===----
*起動
<pre>
</pre>
===コンテナデータベースの起動/停止PDBの確認===*起動(すべての場合all指定、個別の場合名前を指定)----
<pre>
SQL> show pdbs
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB MOUNTEDREAD WRITE NO</pre> ===PDBへ接続===----<pre>SQL> alter session set container=ORCLPDB; セッションが変更されました。</pre>
*直接
<pre>
> sqlplus user/password@pdbname
</pre>
===PDB 起動/停止===
----
*接続して起動
<pre>
SQL> startup open
</pre>
*接続せずに(すべての場合all指定、個別の場合名前を指定)
<pre>
SQL> alter pluggable database all open;
プラガブル・データベースが変更されました。
</pre>
*停止接続して停止*https://atmarkit.itmedia.co.jp/fdb/ref/ref_oracle/shutdown.html<pre>SQLPLUS /NOLOGCONNECT username/password AS [SYSDBA | SYSOPER]</pre>*SHUTDOWN NORMAL:通常停止(すべての場合all指定、個別の場合名前を指定現在データベースに接続しているすべてのユーザーがデータベースからの切断するのを待機)*SHUTDOWN IMMEDIATE:即時停止(コミットされていないトランザクションはすべてロールバックされます。現在データベースに接続しているユーザーが切断されるのを待機せず、直ちにデータベースは停止)*SHUTDOWN TRANSACTIONAL:アクティブなトランザクションを完了してからインスタンスを停止*SHUTDOWN ABORT:強制終了
<pre>
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL> shutdown
</pre>
*接続せずに停止(すべての場合all指定、個別の場合名前を指定)
<pre>
SQL> alter pluggable database all close;
プラガブル・データベースが変更されました。
</pre>
===ユーザーの作成===
----
*ユーザーの作成と全権限の付与
*CDBに作成しようとすると、ORA-65096 エラー PDBに作成する
<pre>
SQL> create user {{USER}} identified by "{{PASSWORD}}";
ユーザーが作成されました。
SQL> grant all privileges to {{USER}};
権限付与が成功しました。
</pre>
<pre>
SQL> shutdown immediate
</pre>
===[https://www.oracle.com/jp/database/technologies/oracle-instant-client.html Oracle Instant Client]===
----
*[https://www.oracle.com/jp/database/technologies/instant-client/downloads.html ダウンロード]
*軽量で簡単にインストールできる、無料のOracle Databaseツール、ライブラリ、SDKを使ってアプリケーションを作成し、Oracle Databaseインスタンスに接続
*Oracle Instant Clientでは、ローカルまたはリモートのOracle Databaseにアプリケーションを接続して、開発および本番環境へのデプロイが可能
*Instant Clientライブラリは、基本的なデータ機能とハイエンドなデータ機能に加えて、必要なクライアントネットワーク接続も備えているため、Oracle Databaseを余すところなく活用できます。*Node.js、Python、PHPのような人気のある言語や環境で使われるOracle APIを下から支え、OCI、OCCI、JDBC、ODBC、Pro*Cにもアクセスできます。
*Instant Clientに含まれるSQL*PlusやOracle Data Pumpなどのツールで、データにすばやく、簡単にアクセスできるようになります。
==Network==
===[https://docs.oracle.com/cd/F19136_01/netag/configuring-and-administering-oracle-net-listener.html#GUID-C3C40DBA-4282-41E1-9562-4B8B10947C4E Net Listener 構成と管理]===
----
*[[Oracle 10gR2 リスナーの構成 Oracle Net Manager]]
====SIDとサービス名====
----
*インスタンスはインスタンス名で識別されます。
*インスタンス名は、INSTANCE_NAME初期化パラメータで指定されます。インスタンス名のデフォルトは、データベース・インスタンスのOracleシステム識別子(SID)です。
*サービス名はデータベースの論理表現です。インスタンスを起動すると、インスタンスはそれ自体を1つ以上のサービス名を使用してリスナーに登録します。
*クライアント・プログラムまたはデータベースがリスナーに接続すると、これらはサービスへの接続を要求します。*
*サービス名は複数のデータベース・インスタンスを識別することができ、インスタンスは複数のサービスに属することができます。
*リスナーはクライアントとインスタンスとの間の仲介役を果し、接続要求を適切なインスタンスに渡します。サービスに接続するクライアントは、必要なインスタンスを指定する必要がありません。
====サービス名をSIDとして使用する====
[https://docs.oracle.com/cd/E96517_01/netrf/Oracle-Net-Listener-parameters-in-listener-ora-file.html#GUID-5055BBB9-26E5-465D-B79A-A712FADF3595 USE_SID_AS_SERVICE]
*listener.ora
<pre>
USE_SID_AS_SERVICE_<リスナー名>=on
<pre>
====リスナー====
----
*リスナーが、ネットワークを介して送信されるクライアントからの接続要求を受付け、サーバープロセスに引き渡すことにより接続を行う。
*インスタンスと同じマシンにリスナーが起動している必要がある
[[File:oracle19c_listener.png|500px]]
=====ステータス確認=====
----
<pre>
C:\Users\hiroto>lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 10-11月-2021 23:26:43
Copyright (c) 1991, 2019, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
開始日 23-10月-2021 23:48:28
稼働時間 17 日 23 時間 38 分 16 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル C:\WINDOWS.X64_193000_db_home\network\admin\listener.ora
ログ・ファイル C:\WINDOWS.X64_193000_db_home\log\diag\tnslsnr\taisetsu\listener\alert\log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=taisetsu)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=taisetsu)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"52448234712340b69f274bcc790ecfe0"には、1件のインスタンスがあります。
インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"CLRExtProc"には、1件のインスタンスがあります。
インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"c5484a2ca5084e87b683e77b0f10428f"には、1件のインスタンスがあります。
インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orcl"には、1件のインスタンスがあります。
インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orclXDB"には、1件のインスタンスがあります。
インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orclpdb"には、1件のインスタンスがあります。
インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
</pre>
=====起動と停止=====
----
<pre>
> lsnrctl start
> lsnrctl stop
</pre>
=====tnspingで接続確認=====
----
<pre>
C:\Users\hiroto>tnsping taisetsu.local
TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 10-11月-2021 23:50:04
Copyright (c) 1997, 2019, Oracle. All rights reserved.
パラメータ・ファイルを使用しました:
C:\WINDOWS.X64_193000_db_home\network\admin\sqlnet.ora
エイリアスを解決するためにEZCONNECTアダプタを使用しました。
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=tcp)(HOST=fe80::55ec:21e6:5d5f:40dd%15)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=2402:6b00:3666:5800:c826:b046:807:8416)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=2402:6b00:3666:5800:55ec:21e6:5d5f:40dd)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.20)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.20)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=2402:6b00:3666:5800:55ec:21e6:5d5f:40dd%15)(PORT=1521)))に接続の試行 中
OK (0ミリ秒)
</pre>
=====ファイアーウォール=====
----
*適宜設定
[[File:oracle19c_firewall_open.png|500px]]
====サービスネーミング====
----
[[File:oracle19c_service.png|500px]]
===[https://docs.oracle.com/cd/F19136_01/netag/quick-start-oracle-net-services.html#GUID-3CC45653-0D18-4FA1-9B6B-BE1767A403AF Oracle Net Services接続のクイック・スタート]===
==[https://www.oracle.com/jp/tools/technologies/sql-developer.html SQL Developer]==
*[https://www.oracle.com/jp/tools/downloads/sqldev-downloads.html ダウンロード] して解凍
[[File:Oracle_sql_dev.png|400px]]
*Oracle Databaseのフリーの開発環境
*オンプレミスおよびCloudのどちらにOracle Databaseがある場合でも、Oracle Databaseの開発や管理
*SQL Developerでは、PL/SQLアプリケーションのend−to-end開発、SQLによる問合せやスクリプトの実行を行うワークシート、データベース管理を行うDBAコンソール、レポート・インターフェース、完全なデータ・モデリング・ソリューション、3rd Party データベースからOracleへのデータ移行などの機能が提供
===接続===
----
[[File:oracle19c_sqldev_prop.png|500px]]
[[File:Sql_dev_con2.png|400px]]
===[[Mac]]===
----
*[https://www.typea.info/blog/index.php/2021/07/02/mac_bigsur_openjdk15_sqldeveloper/ Mac Big Sur の Openjdk15 で SQL Developerを起動する]
====[https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core ODP.NET Managed Driver]====
----
*https://mat0401.info/blog/oracle-odpnet-manged1/
*Oracle Clientのインストールなしで使用できる
*[https://docs.oracle.com/cd/F19136_01/odpnt/ Windows 開発者ガイド]
*[https://www.oracle.com/jp/database/technologies/oramag/o46odp.html パフォーマンスの向上]
==Data Pump==
===Jobに接続し開始・停止・確認===
*以下SQLでJOB_NAMEを確認
<pre>
SELECT * FROM DBA_DATAPUMP_JOBS;
</pre>
*expdp/impdp user/pass attach=JOB_NAME で接続
*help/status/start_job/stop_job/kill_job
==Tool==
===[[Mac]]===
----
*https://www.oracle.com/jp/database/technologies/instant-client/macos-intel-x86-downloads.html
*ダウンロードしてそれぞれマウント
**Basicパッケージ(DMG)
**SQL*Plusパッケージ(DMG)
*以下をそれぞれのパッケージに実施
<pre>
$ cd /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru/
$ ./install_ic.sh
$ sudo mv -f instantclient_19_8 /usr/local
</pre>
*PATHを通す
<pre>
$ vi ~/.bash_profile
export PATH="/usr/local/instantclient_19_8:$PATH"
</pre>
*実行
<pre>
$ sqlplus
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 2 18:37:51 2021
Version 19.8.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Enter user-name:
</pre>
===[https://docs.oracle.com/cd/F19136_01/admqs/getting-started-with-database-administration.html#GUID-BA75AD46-D22E-4914-A31E-C395CD6A2BBA Oracle Enterprise Manager Database Express]===
----
*EM Expressは、Oracle Database内に構築されるWebベースのデータベース管理ツール
*中間層またはミドルウェア・コンポーネントを持たないため、データベース・サーバーのオーバーヘッドはほとんどありません
*データベースがオープンしているときにのみ使用できます
====起動[https://docs.oracle.com/cd/F19136_01/admqs/managing-pdbs-with-em-express.html#GUID-24A7DC45-7A14-47A1-B14A-E1A7093CE6D9 PDBの管理]====----*PDB用のEM Expressを起動するには、PDBが読取り/書込みモードで開かれていることを確認*PDBを含んでいるCDBのCDB$ROOTコンテナに接続して、CDBのグローバル・ポートを構成するたのSQL文を発行<pre>SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO SQL> alter session set container=CDB$ROOT;SQL> exec dbms_xdb_config.setglobalportenabled(TRUE); PL/SQLプロシージャが正常に完了しました。</pre> <pre>SQL> alter session set container=ORCLPDB; セッションが変更されました。 SQL> select dbms_xdb_config.gethttpsport() from dual; DBMS_XDB_CONFIG.GETHTTPSPORT()------------------------------ 0</pre>*gethttpsportプロシージャによって0が返される場合はHTTPSポートを[https://docs.oracle.com/cd/F19136_01/admqs/getting-started-with-database-administration.html#GUID-EB851101-07BE-4038-BB9D-06E01CC7F5D5 手動で構成]する必要があります。 ====CDB用EM Express起動====----<pre>SQL> alter session set container=CDB$ROOT; セッションが変更されました。 SQL> select dbms_xdb_config.gethttpsport() from dual; DBMS_XDB_CONFIG.GETHTTPSPORT()------------------------------ 5500</pre> *https://taisetsu:5500/em*sysやsystemで接続 [[File:Oracle_em_express01.png|400px]][[File:Oracle_em_express02.png|400px]]====切り替え====*従来のAdobe Flash版のEM Expressに切り替える<pre>SQL> @?/rdbms/admin/execemx emx</pre> *新しいJET版のOracle EM Expressに戻る<pre>SQL> @?/rdbms/admin/execemx omx</pre>