为了达到实例宕掉但监听不宕的情况下也行, 监听需要全部是动态注册的, 不允许静态配置的服务名. 因为动态注册的话,当实例宕掉后
1. 主库检查和设置
假设新增的服务名为ORCL_TAF.LK.
SQL> exec dbms_service.create_service(service_name=>'ORCL_TAF.LK', network_name=>'ORCL_TAF.LK');
SQL> exec dbms_service.start_service(service_name=>'ORCL_TAF.LK');
SQL> CREATE OR REPLACE TRIGGER trg_oci_service
after startup on database
DECLARE
role VARCHAR(30);
BEGIN
SELECT DATABASE_ROLE INTO role FROM V$DATABASE;
IF role='PRIMARY' THEN
DBMS_SERVICE.START_SERVICE('ORCL_TAF.LK');
END IF;
END;
/
SQL> show parameter service_names
NAME TYPE VALUE
------------------------------------ --------------- ------------------------------
service_names string ORCL_TAF.LK
若备库非实时应用,则手工归档确保触发器传到备库:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
确认可以显示新增的服务:
$ lsnrctl status
...
Service "ORCL_TAF.LK" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
2. 配置OCI客户端(包括纯OCI/OCCI客户端和JDBC-OCI客户端)
为了达到实例宕掉但监听不宕的情况下也行, 监听需要全部是动态注册的, 不允许静态配置的服务名. 因为动态注册的话,,当实例宕掉后,其服务名就会从监听中消失, 此时应用才会去偿试第二个IP地址. 如果有静态配置的话, 则由于监听是可以接受客户端的请求, 将不会去偿试第二个IP地址, 而是报出Oracle not available的错误.
$ vi $ORACLE_HOME/network/admin/tnsnames.ora
--------------------------------------------------------------------------------
DB_ORCL=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=primary_host)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=standby_host)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=ORCL_TAF.LK)
)
)
--------------------------------------------------------------------------------
注意: ADDRESS_LIST中包含主备库服务器和端口信息, 其中SERVICE_NAME为新增的服务名ORCL_TAF.LK.
对于JDBC-OCI客户端配置方法为"jdbc:oracle:oci8:@DB_ORCL".
--End--

MySQLhandlesconcurrencyusingamixofrow-levelandtable-levellocking,primarilythroughInnoDB'srow-levellocking.ComparedtootherRDBMS,MySQL'sapproachisefficientformanyusecasesbutmayfacechallengeswithdeadlocksandlacksadvancedfeatureslikePostgreSQL'sSerializa

mySqlHandLestActionSefectefectionalytheinnodbengine,supportingAcidPropertiessimilartopostgresqlesqlandoracle.1)mySqluessRepeTableReadAbereadasTheDefaultIsolationLeleleteLevel,whatcanBeadJustEdToreDtoreDtoreDtoreadCommittedCommittenCommententCommittedForHigh-TrafficsCenarios.2)

最佳實踐包括:1)理解數據結構和MySQL處理方式,2)適當索引,3)避免SELECT*,4)使用合適的JOIN類型,5)謹慎使用子查詢,6)使用EXPLAIN分析查詢,7)考慮查詢對服務器資源的影響,8)定期維護數據庫。這些做法能使MySQL查詢不僅快速,還具備可維護性、可擴展性和資源效率。

MySQLisbetterforspeedandsimplicity,suitableforwebapplications;PostgreSQLexcelsincomplexdatascenarioswithrobustfeatures.MySQLisidealforquickprojectsandread-heavytasks,whilePostgreSQLispreferredforapplicationsrequiringstrictdataintegrityandadvancedSQLf

MySQL通過異步、半同步和組複製三種模式處理數據複製。 1)異步複製性能高但可能丟失數據。 2)半同步複製提高數據安全性但增加延遲。 3)組複製支持多主複製和故障轉移,適用於高可用性需求。

EXPLAIN語句可用於分析和提升SQL查詢性能。 1.執行EXPLAIN語句查看查詢計劃。 2.分析輸出結果,關注訪問類型、索引使用情況和JOIN順序。 3.根據分析結果,創建或調整索引,優化JOIN操作,避免全表掃描,以提升查詢效率。

使用mysqldump進行邏輯備份和MySQLEnterpriseBackup進行熱備份是備份MySQL數據庫的有效方法。 1.使用mysqldump備份數據庫:mysqldump-uroot-pmydatabase>mydatabase_backup.sql。 2.使用MySQLEnterpriseBackup進行熱備份:mysqlbackup--user=root--password=password--backup-dir=/path/to/backupbackup。恢復時,使用相應的命


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)