日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle主机名的脚本,一个开启Oracle服务和更改主机名的脚本-Oracle

發(fā)布時(shí)間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle主机名的脚本,一个开启Oracle服务和更改主机名的脚本-Oracle 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)開(kāi)啟Oracle服務(wù)和更改主機(jī)名的腳本

真不知道該起一個(gè)什么題目,這是昨天數(shù)據(jù)庫(kù)老師提出的問(wèn)題。由于實(shí)驗(yàn)室的機(jī)器都裝了還原卡,每次開(kāi)機(jī)或重啟都會(huì)回到初始狀態(tài),所以數(shù)庫(kù)的listener.ora、tnsnames.ora文件里的host不是本機(jī)的計(jì)算機(jī)名,每次都需要手動(dòng)修改,很麻煩。所需要寫一個(gè)腳本來(lái)自動(dòng)化的完成這個(gè)任務(wù)。第一次寫技術(shù)博客,不知道問(wèn)題描述清楚了沒(méi)有。

我分是兩部分完成的,開(kāi)啟服務(wù)和獲取主機(jī)名是用批處理命令,然后把主機(jī)名作為參數(shù)傳入一個(gè)python腳本來(lái)完成對(duì)文件的修改。下面是批處理部分,文件名start.bat :

01

@echo off

02

rem 這是注釋

03

04

rem 獲取計(jì)算機(jī)名

05

python update.py %computername%

06

07

rem 開(kāi)啟Oracle服務(wù)

08

net start OracleServiceORCL

09

net start OracleOraDb10g_home1TNSListener

10

11

pause

update.py:

01

#coding=utf-8

02

import sys

03

04

print u"計(jì)算機(jī)名:"

05

print sys.argv[1]

06

07

print u"見(jiàn)證奇跡的時(shí)刻。。。"

08

09

#修改主機(jī)名

10

def update_file(path,old_name,new_name):

11

"""

12

python 不能直接修改文本的內(nèi)容,嘗試了幾種方法,發(fā)現(xiàn)下面的方法比較好。

13

先取出文件的內(nèi)容,查找替換計(jì)算機(jī)名,重寫寫入覆蓋原來(lái)的文件。

14

注意:用 w 或 w+ 方式打開(kāi)文件時(shí)可以寫入,如果文件名存在,會(huì)先清除原來(lái)的內(nèi)容。

15

"""

16

file = open(path,'r+')

17

content = file.read()

18

content = content.replace(old_name, new_name)

19

file.close()

20

file = open(path,'w+')

21

file.write(content)

22

file.close()

23

return

24

25

#三個(gè)文件的路徑

26

path1 = 'C:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora'

27

path2 = 'C:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/tnsnames.ora'

28

path3 = 'C:/oracle/product/10.2.0/client_1/NETWORK/ADMIN/tnsnames.ora'

29

30

#文件里的計(jì)算機(jī)名和本機(jī)的計(jì)算機(jī)名

31

old_name = 'sdwh119'

32

new_name = sys.argv[1]

33

34

update_file(path1, old_name, new_name)

35

update_file(path2, old_name, new_name)

36

update_file(path3, old_name, new_name)

后來(lái)發(fā)現(xiàn)實(shí)驗(yàn)室里雖然都有python,但是環(huán)境變量沒(méi)有配置,所以每次開(kāi)機(jī)還要先配置python的環(huán)境變量:“C:\Python27;”。兩個(gè)腳本都很簡(jiǎn)單,但是也不是一下就寫出來(lái)的。批處理的內(nèi)容都是現(xiàn)學(xué)現(xiàn)賣。

下面是一個(gè)同學(xué)完全使用批處理的做法,現(xiàn)在還是有幾個(gè)符號(hào)看不懂,也不想懂了:

01

@echo off

02

setlocal enabledelayedexpansion

03

cd\

04

cd oracle\product\10.2.0\db_1\NETWORK\ADMIN

05

for /f "delims=" %%a in (tnsnames.ora) do (

06

set aa=%%a

07

set aa=!aa:sdwh119=%computername%!

08

echo !aa!>>temp.txt

09

)

10

del tnsnames.ora

11

ren temp.txt tnsnames.ora

12

for /f "delims=" %%a in (listener.ora) do (

13

set aa=%%a

14

set aa=!aa:sdwh119=%computername%!

15

echo !aa!>>temp.txt

16

)

17

del listener.ora

18

ren temp.txt listener.ora

19

cd\

20

cd oracle\product\10.2.0\client_1\NETWORK\ADMIN

21

for /f "delims=" %%a in (tnsnames.ora) do (

22

set aa=%%a

23

set aa=!aa:sdwh119=%computername%!

24

echo !aa!>>temp.txt

25

)

26

del tnsnames.ora

27

ren temp.txt tnsnames.ora

28

net start OracleServiceORCL

29

net start OracleOraDb10g_home1TNSListener

總結(jié)

以上是生活随笔為你收集整理的oracle主机名的脚本,一个开启Oracle服务和更改主机名的脚本-Oracle的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。