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

真不知道该起一个什么题目,这是昨天数据库老师提出的问题。由于实验室的机器都装了还原卡,每次开机或重启都会回到初始状态,所以数库的listener.ora、tnsnames.ora文件里的host不是本机的计算机名,每次都需要手动修改,很麻烦。所需要写一个脚本来自动化的完成这个任务。第一次写技术博客,不知道问题描述清楚了没有。

我分是两部分完成的,开启服务和获取主机名是用批处理命令,然后把主机名作为参数传入一个python脚本来完成对文件的修改。下面是批处理部分,文件名start.bat :

@echo off

rem 这是注释

rem 获取计算机名

python update.py %computername%

rem 开启Oracle服务

net start OracleServiceORCL

net start OracleOraDb10g_home1TNSListener

pause

update.py:

#coding=utf-8

import sys

print u"计算机名:"

print sys.argv[1]

print u"见证奇迹的时刻。。。"

#修改主机名

def update_file(path,old_name,new_name):

"""

python 不能直接修改文本的内容,尝试了几种方法,发现下面的方法比较好。

先取出文件的内容,查找替换计算机名,重写写入覆盖原来的文件。

注意:用 w 或 w+ 方式打开文件时可以写入,如果文件名存在,会先清除原来的内容。

"""

file = open(path,'r+')

content = file.read()

content = content.replace(old_name, new_name)

file.close()

file = open(path,'w+')

file.write(content)

file.close()

return

#三个文件的路径

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

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

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

#文件里的计算机名和本机的计算机名

old_name = 'sdwh119'

new_name = sys.argv[1]

update_file(path1, old_name, new_name)

update_file(path2, old_name, new_name)

update_file(path3, old_name, new_name)     后来发现实验室里虽然都有python,但是环境变量没有配置,所以每次开机还要先配置python的环境变量:“C:\Python27;”。两个脚本都很简单,但是也不是一下就写出来的。批处理的内容都是现学现卖。

下面是一个同学完全使用批处理的做法,现在还是有几个符号看不懂,也不想懂了:

@echo off

setlocal enabledelayedexpansion

cd\

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

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

set aa=%%a

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

echo !aa!>>temp.txt

)

del tnsnames.ora

ren temp.txt tnsnames.ora

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

set aa=%%a

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

echo !aa!>>temp.txt

)

del listener.ora

ren temp.txt listener.ora

cd\

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

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

set aa=%%a

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

echo !aa!>>temp.txt

)

del tnsnames.ora

ren temp.txt tnsnames.ora

net start OracleServiceORCL

net start OracleOraDb10g_home1TNSListener

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值