當前位置:首頁 » 數據倉庫 » 資料庫自動切換功能
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫自動切換功能

發布時間: 2022-05-20 19:47:21

1. 如何啟用資料庫鏡像的自動故障切換功能

停止主體的sql SERVER服務,或者拔掉主體的網線,看鏡像能否變成主體

另外,在被鏡像資料庫的右鍵菜單上有《啟動鏡像監視器》,可以用鏡像監視器來監視各個節點的狀況。

要在客戶端使用自動failove功能,必須使用SQL Native Client作為OLE DB Provider。
否則需要在代碼中手工實現。

2. 某地區mysql出現問題 如何切換到其他地區資料庫

如何切換到其他地區資料庫
其他資料庫是在同一台機器上嗎
可以用use dbname切換

如果是通過程序訪問資料庫的,需要修改程序的配置了,改為其他資料庫的連接參數

3. 通常情況下,用戶登錄到SQL Server時,如何將要使用的資料庫切換為當前資料庫

通常情況下,如果安裝過程中沒有出現錯誤提示,既可以認為安裝成功。但是,為了檢驗安裝是否正確,也可以採用一些驗證方法。例如,可以檢查SQL Server 2008的服務和工具是否存在,應該自動生成的系統共資料庫和樣本資料庫是否存在,以及有關文件和目錄是否正確等。

2
安裝之後,選擇【開始菜單】→【所有程序】→【SQL Server 2008】可以查看到SQL Server 2008的信息。

3
在SQL Server 2008中主要包括8項:Configurtion Tools、Docunmentaion and Tutorials、Analysis Services、Performance、SQL Server Management Studio、導入和導出數據(32位)以及SQL server Business Intelligence Development Studio。

4
SQL Server 2008還包含多個服務,可以通過菜單欄中選擇【SQL Server 2008配置管理】命令,從彈出窗口的左側單擊【SQL Server服務】選項來查看SQL Server 2008的各種服務。

END
2、注冊伺服器
1
選擇【開始】→【程序】→【SQL Server2008】→【SQL ServerManagement Studio】命令,打開【SQL ServerManagement Studio】窗口,並單擊【取消】按鈕。

2
在【查看】→【已注冊的伺服器】窗格中展開【資料庫引擎】節點,選擇【本地伺服器】→【新建伺服器注冊】命令。

3
在彈出下面圖所示的【新建伺服器注冊】對話框。在該對話框中輸入或選擇要注冊的伺服器名稱,在【身份驗證】下拉表中選擇【Windows 身份驗證】選項,單擊【連接屬性】標簽,切換到【連接屬性】選項卡,可以設置連接到的資料庫、網路以及其他連接屬性。

4
從【連接到資料庫】下拉表中指定當前用戶將要連接到的資料庫名稱,其中,【默認值】選項表示連接到SQL Server 系統中當前用戶默認使用的資料庫。【瀏覽伺服器】選項表示可以從當前伺服器中選擇一個資料庫。當選擇【瀏覽伺服器】選項時,彈出【查找伺服器上的資料庫】對話框,從該對話框中可以指定房錢用戶連接伺服器時默認的資料庫。

5
設定完成後,單擊【確定】按鈕返回【連接屬性】選項卡,單擊【測試】按鈕可以驗證連接是否成功,如果成功會彈出提示對話框表示連接屬性的設置時正確的。

6
最後,單擊票【確定】按鈕返回【連接屬性】選項卡,單擊【保存】按鈕來完成注冊伺服器操作。

END
3、配置伺服器
選擇【開始】→【程序】→【SQL Server2008】→【SQL ServerManagement Studio】命令,打開【連接到伺服器】對話框。

在此對話框中的【伺服器名稱】下拉列表中輸入本地計算機名稱,在設置【伺服器類型】為「資料庫引擎」,選擇使用SQL Server 或Windows身份驗證,並在相對應的文本框中輸入登錄名和密碼。

輸入完成後,單擊【連接】按鈕,即可成功連接伺服器。伺服器連接成功後,右鍵單擊【對象資源管理器】中要設置的伺服器名稱,在彈出來的快捷菜單中選擇【屬性】菜單項。

連接伺服器成功後,右鍵單擊【對象資源管理器】中要設置的伺服器名稱,在彈出來的菜單中選擇【屬性】命令。從彈出來的【伺服器屬性】對話框可以看出工包含了8個選項卡。其中【常則】選項窗口列出了當前服務產品名稱、操作系統名稱、平台名稱、版本號、使用言語、當前伺服器的內存大小、處理器數量、SQL Server 安裝目錄、伺服器的排列規則以及是夠群集化等信息。

4. 請教關於exchange 2010 DAG 資料庫切換問題

你好,可以通過以下界面來進行切換:

1.在 EAC 中,轉到「伺服器」>「伺服器」。
2.選擇要用來切換的郵箱伺服器。
3.在詳細信息窗格中,選擇「伺服器切換」。
4.在「伺服器切換」頁面上,執行以下一種操作:
a.接受默認設置「自動選擇目標伺服器」(在這種情況下,系統將為要切換的每個資料庫自動選擇最佳郵箱伺服器),然後單擊「保存」。
b.單擊「使用指定的伺服器作為切換目標」,再單擊「瀏覽」選擇郵箱伺服器,然後單擊「保存」。
5.成功完成切換後,單擊「關閉」退出「伺服器切換」頁面。

5. 如何在dataguard環境做到client的自動切換

如果做通用的方案,需要客戶端自己提供自動重連的能力,這點大多數Java的occi的連接池都有實現。
但這些已有實現大多是對同一連接配置發起重連,所以需要考慮為application提供透明的連接方式,而不讓應用看到具體data guard的多個ip和service name,這就需要做些額外的配置工作。
一種方式通過vip,真實轉發的ip只掛靠在有效資料庫的ip上。這種方式切換發生後,application在斷連的舊connection上發起dml會獲得ORA-3113 "end of file on communication channel"的錯誤,此時application可以嘗試重連機制和新的primary建立連接。
在f5上可以通過設置心跳sql和期望的返回結果內容,以類似ping方式獲取遠端資料庫是否可用,來決定ip是否應該轉發到該物理ip上。
另一種方式是通過設置tns和資料庫的service name來訪問,通過合理設置,甚至可以做到在發生切換時的select操作僅僅被阻塞一會,而不會感覺到資料庫已經完成了主備切換。
設置步驟如下:
1.客戶端的tnsnames.ora中tns配置成
MYAPP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HostA)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = HostB)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myapp)
)
)
2.在primary資料庫運行
begin
dbms_service.create_service("myapp","myapp");
end;
/
begin
DBMS_SERVICE.START_SERVICE("myapp");
end;
/
3.在primary資料庫創建觸發器:
create trigger myapptrigg after startup on database
declare
v_role varchar(30);
begin
select database_role into v_role from v$database;
if v_role = "PRIMARY" then
DBMS_SERVICE.START_SERVICE("myapp");
else
DBMS_SERVICE.STOP_SERVICE("myapp");
end if;
end;
/
解釋下:這個方案的思路就是將兩邊的資料庫的service name都設置成"myapp",當發生切換時,由觸發器在資料庫startup的時候把primary的實例以"myapp"的名字顯示,而把standby的"myapp"服務名給停掉,這樣任何時刻只有主節點顯示名字為"myapp"的服務。
注意這里的plsql都是運行在primary,無需在standby上做任何設置,因為data guard會自動將變化同步到standby資料庫。
通過在primary資料庫運行下面程序,可以讓客戶端在做select的時候甚至意識不到資料庫的切換:
begin
dbms_service.modify_service
("myapp",
FAILOVER_METHOD => "BASIC",
FAILOVER_TYPE => "SELECT",
FAILOVER_RETRIES => 200,
FAILOVER_DELAY => 1);
end;
/
注意如果在切換時有comit的提交事務發生,還是會出現失誤提交失敗,要求回滾的情況。
下面tns是另一種配置方式(類似rac的failover配置思想),使用這種方式,不需要在Oracle server中運行任何plsql腳本,在DESCRIPTION_LIST中的兩個資料庫甚至根本不需要處於data guard中,可以是任意兩個資料庫。driver會按順序遍歷list中的資料庫,一直到能連接上為止。
MYAPP =
(DESCRIPTION_LIST=
(LOAD_BALANCE=off)
(FAILOVER=on)
(DESCRIPTION =(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=10)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myapp1)
)
)
(DESCRIPTION =(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=10)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = otherIP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myapp2)
)
)
)
這種方式需要注意的地方:
1.jdbc必須走oci的方式,如果為jdbc:thin+tns方式,則會出現
Exception in thread "main" java.lang.: 545
at oracle.NET.nl.NVTokens.parseTokens(Unknown Source)
at oracle.Net.nl.NVFactory.createNVPair(Unknown Source)
其原因在於jdbc的driver本身無法識別這種格式的tns內容。
此時即使以jdbc:thin+tns的方式訪問其他正常的tns也會一樣拋出這個錯誤,因為這導致了jdbc根本無法正確解析整個tnsnames.ora文件。
而jdbc:oci實際上負責解析tnsnames.ora和處理通信的是依賴oci.lib,因此就不存在這個問題。
2.這種配置適用於任何依賴oci通信的客戶端,包括oci,occi,一些基於它們的wrap庫,以及pl/sql developer此類的工具軟體。
3.注意如果連接的資料庫組屬於manually switch的模式,而不是fail down導致的切換,比如tns中的a資料庫是mount狀態,b是primary,而tns的列表順序是先a後b,則會出現盡管客戶端連a時,拋出ORA-0133錯誤,但是不會按順序去嘗試連接b。
原因是在處理這個鏈接時,oci客戶端會嘗試通過listener和service建立連接。
如果listener是關閉的,或者客戶端能連上listener但是找不到對應service,則都會嘗試連接處於第二個的b,但是如果通過listener找到了對端的service,只是無法建立連接(如資料庫處於mount狀態),則此時不會嘗試連接b,而直接會以拋出
ORA-0133:ORACLE initialization or shutdown in progress
終止連接嘗試。
所以在使用這種tns的時候要確保通過tns列表能訪問到的所有資料庫都不會一直處於mount狀態,否則連接它會打斷對後面正常open資料庫的連接嘗試。
這也是為何手動切換的dataguard資料庫,客戶端不能依賴這種tns配置方法做自動切換,因為手動切換的dataguard資料庫狀態肯定是一個open一個mount,如果mount處於tns的列表靠前的位置,在連接它失敗後會拋出ORA-0133異常阻止客戶端嘗試連接正常open的那個資料庫。

6. pubmed資料庫詞彙自動轉換功能可以實現對單復數 同義詞的檢索嗎

摘要 你好親 只能實現單復數的檢索,不能實現同義詞的檢索。

7. 我想實現在sql資料庫,和access資料庫之間的快速切換,只需改變一個地方,就可以那種,怎樣才能實現

可以建立兩個不同的數據鏈接文件。一個鏈接sql,另一個鏈接access。程序中修改鏈接文件就可以了。如:
鏈接access:
cnPubs.ConnectionString = "File Name=d:\Data\access\Pubs.udl;"
鏈接sql:
cnPubs.ConnectionString = "File Name=d:\Data\sql\Pubs.udl;"

8. 兩台MSSQL資料庫伺服器連接切換

使用資料庫鏡像功能+見證伺服器,可以實現自動切換。
連接字元串需要加上切換的參數。

9. 資料庫:資料庫的自動主備切換難道需要三台機器

兩台即可,監控軟體安裝在資料庫伺服器即可。