切換資料庫用
㈠ oracle資料庫切換問題
你這個屬於主、備機切換
sql">1.察看主庫狀態
selectswitchover_statusfromv$database;
收集主庫上的臨時表空間的情況,原因是備庫激活後臨時文件可能丟失,需要手工建上去:
colfile_nameformata40
selectfile_name,tablespace_name,bytes/1024/1024fromdba_temp_files;
FILE_NAMETABLESPACE_NAMEBYTES/1024/1024
---------------------------------------------------------------------------
/data/oradata/alihr/temp01.dbfTEMP2048
2.切換主庫到standby
;
或:
;
shutdownimmediate;
startupnomount;
;
3.驗證要被切換的standby是否接收到switchto通知
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
以前的狀態就是SESSIONSACTIVE,現在就變為TOPRIMARY
4.切換物理standby到主用模式,檢查redolog是否創建好
;
shutdownimmediate;
startup;
5.standby資料庫切換成主庫後,檢查是否需要、對臨時表空間增加臨時文件:
先檢查臨時文件是否丟失:
colfile_nameformata60
selectfile_name,tablespace_namefromdba_temp_files;
把結果前面原主庫上的臨時文件進行對比,如有丟失則使用如下命令增加:
'/data/oradata/alihr/temp02.dbf'size2048Mreuse;
正常情況下,如果db_file_name_convert參數設置正確的話,11g會自動建立tempfile
6.在新的standby機器上
altersystemsetlog_archive_dest_state_2='defer';
;
7.檢查主備庫中fal參數
fal_server服務名是在standby機器的tnsnames中,指向主庫,fal_client是在主庫上的tnsnames中,指向standby。
fal參數只在standby機器上生效,所以在standby機器上fal_server指向主庫,fal_client機器指向備庫.
而主庫上的fal參數雖然不生效,但為了避免主庫切換成standby時,我們還要修改fal參數,所以現在就設置好,
讓fal_server指向現在的standby資料庫,fal_client指向自己。
8.在新的主庫
altersystemsetlog_archive_dest_state_2='enable';
altersystemarchivelogcurrent;
然後到備庫上檢查備庫機器上日誌是否正常的傳過來了。
9.檢查和調整主備庫兩台機器中的crontab中的資料庫備份腳本和刪除歸檔腳本。
=================oracle11g的最大保護和最大可用模式下的切換==================
如果主庫是意外宕機的,則直接把備庫切換成主庫:
;
;
shutdownimmediate;
connect/assysdba;
startupmount;
;
shutdownimmediate;
connect/assysdba;
startupmount;
;
alterdatabaseopen;
注意:上面操作中是手工的把資料庫重新置成MAXIMIZEAVAILABILITY,否則資料庫起來後是最大性能模式。
檢查資料庫的角色:
selectdatabase_rolefromv$database;
原有主庫啟動後,如果不是硬碟壞,主庫上的數據還存在,則把主庫轉換成standby就可以了:
主庫上:
startupmount;
recoverautomaticdatabase;
;
shutdownimmediate;
注意千萬不要把主庫打開了,否則會導致主庫的SCN發生變化,無法轉換成standby資料庫了。
在把原先的主庫轉化為standby時,有時可能報如下錯誤:
SQL>;
*
ERRORatline1:
ORA-00283:
ORA-19909:
ORA-01110:datafile1:'/opt/oracle/oradata/oratest/system01.dbf'
這里把到rman中:
listincarnationofdatabase;
resetdatabasetoincarnation1;
recoverdatabase;
resetdatabasetoincarnation2;
=========================================================
failover在物理standby的切換
1.檢查standby看是否使用了standbylog
2.有standbylog,執行下面的命令
;
;
2.1沒有standbylog則不執行上面的
SKIPSTANDBYLOGFILE;
3.切換
;
3.1如果上面3步驟失敗,則
;
4.重啟db
shutdownimmediate
startup
switchover的方法:
主庫和物理standby的切換
1.察看主庫狀態
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
2.切換
;
3.原主庫
shutdownimmediate;
startupnomount
;
4.驗證要被切換的standby是否接收到switchto通知
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
增加onlineredo日誌
5.切換物理standby到主
;
shutdownimmediate;
startup;
6.在新的standby機器(也就是老的主庫)
;
7.在新的主庫
altersystemarchivelogcurrent;========activestandbydatabase===========
當:
;
原來的主庫只能通過閃回轉化成standbydatabase,但要求資料庫的flashback打開。
在新主庫上:
selectto_char(standby_became_primary_scn)fromv$database;
在舊主庫上:
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
FLASHBACKDATABASETOSCNstandby_became_primary_scn;
;
selectmax(sequence#)fromv$log_historywhereRESETLOGS_TIME=(selectmax(RESETLOGS_TIME)fromv$log_history);實例恢復:
;
=================lgwr設置====================================
altersystemsetlog_archive_dest_3='location=/disk3/arch/bopschareopen=2MAX_FAILURE=3';
altersystemsetlog_archive_dest_state_3=alternate;
altersystemsetlog_archive_dest_1='location=/disk2/arch/bopschaalternate=log_archive_dest_3reopen=60MAX_FAILURE=5';
*.log_archive_dest_2='SERVICE=DTMRTLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=DTMRT';
('/oracle/u02/ORA10GDG/STANDBYRD01.LOG')size200M;
selectgroup#,thread#,sequence#,archived,statusfromv$standby_log;
{availability|performance|protection};
selectprotection_modefromv$database;
ORA-19527:
LOG_FILE_NAME_CONVERT='/u02/oracle/oradata/oract/','/u02/oracle/oradata/oract/'
altersystemsetlog_archive_dest_2='SERVICE=bopsteststblgwrsyncaffirm';
selectfrequency,rationfromv$redo_dest_resp_histogramwheredest_id=2andfrequency>1;SQL>;
SQL>ALTERDATABASEOPEN;
SQL>T;;
;
T;
;
finishapply;
;
舊主庫轉換成standby的步驟:
在新主庫上:
selectto_char(standby_became_primary_scn)fromv$database;
在舊主庫上:
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
FLASHBACKDATABASETOSCNstandby_became_primary_scn;
;
WITHSESSIONSHUTDOWN;
FORCE;
㈡ MYSQL 資料庫用什麼命令切換資料庫,謝謝大家教我。
要用哪個庫 就寫
use 庫名
就可以切換過去了
㈢ 通常情況下,用戶登錄到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 安裝目錄、伺服器的排列規則以及是夠群集化等信息。
㈣ 在sqlserver存儲過程中如何切換資料庫
不一定非要在存儲過程中轉換,用普通的sql語句就可以,一般用cast函數。
測試方法:
創建表及插入數據:
create table test
(id int,
starttime varchar(20));
insert into test values (1,'2015-07-11');
將starttime欄位轉化為datetime類型:
select cast(starttime as datetime) from test;
結果如圖,這時,starttime就轉成了datetime類型:
㈤ oracle 切換資料庫
直接登錄相應的用戶就可以了。
步驟:直接在命令行輸入sql>conn username/password;即可完成切換.
解釋:每個用戶都只能默認一個資料庫,不可能出現多個資料庫。所以直接切換到需要的用戶下即可完成操作。
㈥ 用Java反射+配置實現切換資料庫
說一個大概思路吧:
1.讀取數據:從資料庫中讀取數據的同時,拿到元數據,即metadata;
2.實例化:通過類名,利用反射升缺 實例你吵茄辯的實體類(類名可以和表名保持一致,這樣就不用寫額外的
映射了),納冊如果你只是想通過反射賦值的話,你也可以直接new個類;
3.方法調用:通過元數據,利用反射 得到你的set方法(方法名可以和欄位名保持一致,否則你要寫
出映射關系);
㈦ sql用什麼語句切換當前資料庫呢
--1、切換資料庫語句:
useAAADB;
go;
一般在程序中不使用以上語句
在程序內一般都是直接跨庫訪問,但首先當前資料庫用戶具備對別的數據有相應許可權,例如:
select*fromAAADB.dbo.AAA
以上語句是不管在當前在哪個資料庫下,都可以直接查詢AAADB資料庫下的AAA表,其中dbo是架構名