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

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

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

01

@echo off

02

rem 这是注释

03

04

rem 获取计算机名

05

python update.py %computername%

06

07

rem 开启Oracle服务

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"计算机名:"

05

print sys.argv[1]

06

07

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

08

09

#修改主机名

10

def update_file(path,old_name,new_name):

11

"""

12

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

13

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

14

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

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

#三个文件的路径

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

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

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)

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

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

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

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

  1. oracle挂证多少钱一个月_惊呆,一条sql竟然把Oracle搞挂了

    一条sql就能把oracle搞挂了,真的是不敢相信啊,前几天生产上确实出现了这样一个故障,我们来一起做一个事件回放. 系统介绍 系统架构见下图: file application1和applicati ...

  2. c# oracle存储过程返回结果集,一个简单的实例给大家分享C#中调用oracle的存储过程...

    Oracle方面 1.创建Oracle过程存储 create or replace procedure proce_test(paramin in varchar2,paramout out varc ...

  3. python贴吧发帖脚本-一个发布文章到博客园的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 为了解决这个问题,希望把文章也顺便发布到博客平台博客园上.但不想每次手动复制粘贴,打算利用脚本实现, ...

  4. 禁止更改计算机名_计算机改名、加域脚本集合

    windows计算机改名.改密码.设置ip.加域脚本集合 今天和大家分享一下,如何将前面的改名加域整合在一起,根据选择执行对应的命令. 新建txt文档,输入一下代码,另存为"自动加域脚本.b ...

  5. Linux系统如何更改主机名,即 [root@xxxx] 改成 [root@localhost]

    inux系统主机名即显示的名字,常用于服务器映射,应用IP关联等,如果我们在建立虚拟机或者服务器时未明确指定,会自动生成一串我们不想要的,或者我们想换一个主机名时,这个时候我们就需要更改主机名操作 一 ...

  6. 自动更改mac地址 ip计算机名的软件,根据MAC地址自动更改计算机名IP的批处理

    根据MAC地址自动更改计算机名IP的批处理 根据MAC地址自动更改计算机名IP的批处理 一些错误信息的解决方法: 1.C:\>wmic path win32_pnpsigneddriver 节点 ...

  7. 【Hbase】HBase 更改表名

    HBase 更改表名 hbase中没有rename命令,所以更改表名比较复杂.重命名主要通过hbase的快照功能. 1.停止表继续插入 hbase shell>disable 'tableNam ...

  8. linux修改主机名后oracle em控制台起不来,更改计算机名后导致Oracle dbconsole无法启动问题解决方法...

    今天不知道哪根筋搭歪了,看着Oracle EM控制台的主机名WIN-LOSGI0TCOG0乱七八糟的很不爽,就把它给改了.然后Oracle EM就上不去了,Oracledbconsole服务起不来,我 ...

  9. oracle怎样开启服务,Oracle 11g必须开启的服务及服务详细介绍

    安装Oracle g数据库后你会发现自己电脑运行速度会变慢配置较低的电脑甚至出现非常卡的状况通过禁止非必须开启的Oracle服务可以提升电脑的运行速度那么具体该怎么做呢? 按照win 位环境下Orac ...

最新文章

  1. flask sqlalchemy踩坑记录
  2. 程序猿必知的MySQL闪回原理
  3. O’Reilly发布“微服务成熟度状态”报告:微服务是成功的
  4. 方正ceb阅读器手机版_海信阅读手机A5Pro 经典版评测:体验和阅读完美平衡
  5. Eclipse输入Java和XML代码自动提示功能最简单的方法
  6. 定量遥感:计算地方时和太阳高度角(C++代码)
  7. mysql数据库知识点梳理_MySQL数据库知识点整理 (持续更新中)
  8. LeetCode 836. 矩形重叠
  9. IDEA Jsp乱码大全
  10. STM32驱动SPI FLASH(W25Q64)
  11. figma学习记录 快捷键 工具了解(1)
  12. -XX:SoftRefLRUPolicyMSPerMB参数了解
  13. shiro 原理简介
  14. kali linux 安装中文乱码,Kali Linux 2019-4解决安装中文乱码-Go语言中文社区
  15. 基于Processing的躲避球游戏
  16. 台式计算机的辐射程度,台式台式电脑辐射污染标准是多少
  17. 使用mycat实现分库分表
  18. from后面跟select语句原来是这个意思
  19. 这个专业的应届生火了!年薪50万,没出校门就被挖走
  20. 如何实现网路电话(VoIP)和传统电话(PSTN)的对接实现统一通信的电话会议应用

热门文章

  1. ASP.NET学习笔记 2
  2. react结合redux的开发步骤
  3. servlet接收传过来的数据流
  4. 一个html多个html文件怎么打开网页,Firefox如何单窗口多页面浏览
  5. 验证手机号码归属地_最新确认:手机号码归属地不能取消
  6. 手机配件实体店好做不_装修不做踢脚线可以吗?银川昌禾告诉你不做踢脚线有多好...
  7. Frog Jumps CodeForces - 1324C(二分)
  8. 奇小葩讲设备树(5/5)-- Linux设备树详解(五)设备树的使用
  9. 奥斯汀大学计算机专业怎么样,美国德州大学奥斯汀分校与加拿大ubc大学电子计算机专业哪个好...
  10. python numpy array转置_详解Numpy数组转置的三种方法T、transpose、swapaxes