2014-05-08 69 views
2

我們有應用程序,所有的邏輯在oracle數據庫中使用pl/sql實現。Oracle數據庫,移動數據庫之間的變化

我們有不同的oracle數據庫用於開發和生產。

當開發人員在測試後對開發數據庫進行更改時,我們使用toad的模式比較工具將開發數據庫中的更改移至生產數據庫。這裏的問題是開發人員必須擁有生產數據庫的密碼。我們只需要管理員知道這個密碼。

有人能告訴我更好的數據庫之間移動更改的方式,而不需要生產數據庫密碼,對此最佳實踐是什麼?

我在oracle OTN論壇上發佈了這個問題,並在那裏得到了一些建議。也許這對某個人會很有趣。 她是link

+6

執行差異操作是部署更改的一種非常糟糕的方式。所有PL/SQL代碼應該存儲在版本控制系統(Subversion,Git,...)中,並通過使用這些腳本應用於目標數據庫。然後,管理員只需要應用版本控制系統中的(最新)腳本。 –

回答

1

我不建議使用比較工具來生成數據庫遷移腳本。 開發和生產數據庫(以及測試數據庫)必須完全相同,除了開發人員在開發數據庫中進行的當前更改。一般來說,這種斷言是不正確的,因爲開發和生產數據庫之間存在多種差異,例如,分區對象,用於審計的其他對象(觸發器,表),基於複製的對象(快照),不同的表空間等。 每個開發人員都必須知道他做了哪些更改並應用於開發數據庫。 如果開發人員能夠更改開發人員數據庫中的架構和數據,則他/她必須能夠爲這些DDL和DML更改創建程序。

委託相同的開發人員在生產數據庫上運行這些遷移程序的能力是一個壞主意。但是,如果您沒有更好的數據庫遷移方法,則可以使用以下其中一種方法:

1. Configure Oracle authentication by OS. OS authentication allows Oracle to pass 
    control of user authentication to the operating system. 

2. TOAD can save passwords without disclose them. DBA will insert required password 
    to local TOAD installation at developer PC (if developers use PC).