| [[Oracle]] | [[Oracle Database10g]] | [[SQL Plus]] | [[Oracle.DataAccess.Client]] |
==Oracle Database19c==
[https://docs.oracle.com/cd/F19136_01/index.html Oracle Database 19c]
----
*[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|300px500px]] [[File:Oracle_inst002.png|300px500px]] [[File:Oracle_inst003.png|300px500px]] [[File:Oracle_inst004.png|300px500px]] [[File:Oracle_inst005.png|300px500px]] [[File:Oracle_inst006.png|300px500px]]
*終了'''EM Express'''のURLが表示される
[[File:Oracle_inst007.png|300px500px]]
==管理==
[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>
*直接
<pre>
> sqlplus user/password@pdbname
</pre>
</pre>
*接続して停止
*https://atmarkit.itmedia.co.jp/fdb/ref/ref_oracle/shutdown.html
<pre>
SQLPLUS /NOLOG
CONNECT username/password AS [SYSDBA | SYSOPER]
</pre>
*SHUTDOWN NORMAL:通常停止(現在データベースに接続しているすべてのユーザーがデータベースからの切断するのを待機)
*SHUTDOWN IMMEDIATE:即時停止(コミットされていないトランザクションはすべてロールバックされます。現在データベースに接続しているユーザーが切断されるのを待機せず、直ちにデータベースは停止)
*SHUTDOWN TRANSACTIONAL:アクティブなトランザクションを完了してからインスタンスを停止
*SHUTDOWN ABORT:強制終了
<pre>
SQL> shutdown
</pre>
プラガブル・データベースが変更されました。
</pre>
===ユーザーの作成===
----
*ユーザーの作成と全権限の付与
*CDBに作成しようとすると、ORA-65096 エラー PDBに作成する
<pre>
SQL> create user {{USER}} identified by "{{PASSWORD}}";
<pre>
SQL> shutdown immediate
</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>
*Instant Clientに含まれるSQL*PlusやOracle Data Pumpなどのツールで、データにすばやく、簡単にアクセスできるようになります。
==Network== ===[https://wwwdocs.oracle.com/jpcd/toolsF19136_01/technologiesnetag/sqlconfiguring-and-administering-oracle-net-developerlistener.html SQL Developer#GUID-C3C40DBA-4282-41E1-9562-4B8B10947C4E Net Listener 構成と管理]===
----
*[https://www.oracle.com/jp/tools/downloads/sqldev-downloads.html ダウンロード[Oracle 10gR2 リスナーの構成 Oracle Net Manager]] して解凍
[[File:Oracle_sql_dev.png|400px]]====SIDとサービス名====----*インスタンスはインスタンス名で識別されます。*インスタンス名は、INSTANCE_NAME初期化パラメータで指定されます。インスタンス名のデフォルトは、データベース・インスタンスのOracleシステム識別子(SID)です。*サービス名はデータベースの論理表現です。インスタンスを起動すると、インスタンスはそれ自体を1つ以上のサービス名を使用してリスナーに登録します。*クライアント・プログラムまたはデータベースがリスナーに接続すると、これらはサービスへの接続を要求します。**サービス名は複数のデータベース・インスタンスを識別することができ、インスタンスは複数のサービスに属することができます。*リスナーはクライアントとインスタンスとの間の仲介役を果し、接続要求を適切なインスタンスに渡します。サービスに接続するクライアントは、必要なインスタンスを指定する必要がありません。
*Oracle Databaseのフリーの開発環境*オンプレミスおよびCloudのどちらにOracle Databaseがある場合でも、Oracle Databaseの開発や管理*SQL Developerでは、PL/SQLアプリケーションのend−to-end開発、SQLによる問合せやスクリプトの実行を行うワークシート、データベース管理を行うDBAコンソール、レポート・インターフェース、完全なデータ・モデリング・ソリューション、3rd Party データベースからOracleへのデータ移行などの機能が提供====接続サービス名をSIDとして使用する====[https://docs.oracle.com/cd/E96517_01/netrf/Oracle-Net-Listener-parameters-in-[[File:Sql_dev_conlistener-ora-file.png|400px]html#GUID-5055BBB9-26E5-465D-B79A-A712FADF3595 USE_SID_AS_SERVICE]
[[File:Sql_dev_con2*listener.png|400px]]ora<pre>USE_SID_AS_SERVICE_<リスナー名>=on<pre>
====[https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core ODP.NET Managed Driver]リスナー====
----
*https://mat0401.info/blog/oracle-odpnet-manged1/リスナーが、ネットワークを介して送信されるクライアントからの接続要求を受付け、サーバープロセスに引き渡すことにより接続を行う。*Oracle Clientのインストールなしで使用できるインスタンスと同じマシンにリスナーが起動している必要がある *[https[File://docsoracle19c_listener.oracle.com/cd/F19136_01/odpnt/ Windows 開発者ガイドpng|500px]*[https://www.oracle.com/jp/database/technologies/oramag/o46odp.html パフォーマンスの向上]==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]]
<pre>
C:\Users\hiroto>lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 0110-7月 11月-2021 23:0326:1443
Copyright (c) 1991, 2019, Oracle. All rights reserved.
別名 LISTENER
バージョン TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
開始日 3023-6月 10月-2021 2223:3048:4328稼働時間 1 17 日 0 23 時間 32 38 分 35 16 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル C:\WINDOWS.X64_193000_db_home\network\admin\listener.ora
ログ・ファイル C:\OracleWINDOWS.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))
サービスのサマリー...
コマンドは正常に終了しました。
</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]]===
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>