坚持#第323天~今天主要把229上的physicalCard物联网卡平台安装指导、软件包、测试搞定了,还搞定了oracle的全备、cmpp账户优先级的脚本

cmpp优先级脚本、cmpp脚本、cmpp账号cmpp账号、cmppserver优先级、cmpp优先级:
声明:事前要有这个目录/tmp/litaoDir/cmpp
vim /tmp/litaoDir/cmpp/cmppYouxianji.sh
# cmpp优先级脚本、cmpp脚本
# 脚本的作用:自动将cmpp账户文件和cmpp优先级文件进行对比,把没有写到cmpp优先级配置文件的账户按照这个格式追加进去
# 作者:李涛-运维
\cp /usr/local/zykj/zykjcmppserver/config/log4j.properties /usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao
\cp /usr/local/zykj/zykjcmppserver/config/log4j.properties /usr/local/zykj/zykjcmppserver/config/log4j.properties-`date '+%Y%m%d_%H%M'`

# 判断有哪些cmpp账户已经做了cmpp优先级的配置:
# 将cmpp优先级的配置文件里面的账户截取出来放到一个文件里
cat /usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao | grep "additivity" | grep -v "cmpp" | awk -F "." '{print $3}' | awk -F "=" '{print $1}' > /tmp/litaoDir/cmpp/cmppCount_log4j.txt
# 将cmpp主配置文件里面的所有账户截取出来放到一个文件里
cat /usr/local/zykj/zykjcmppserver/config/cfg.xml | awk -F "sourceAddr=" '{print $2}' | awk -F \" '{print $2}' | sort -r | tr -s "\n\n" "\n" | sort -n > /tmp/litaoDir/cmpp/cmppCount_main.txt

# 最后将没有写到cmpp优先级配置文件的账户追加到cmpp优先级配置文件里面去:
for i in `cat /tmp/litaoDir/cmpp/cmppCount_log4j.txt /tmp/litaoDir/cmpp/cmppCount_main.txt | sort | uniq -c |grep " 1 " | awk '{print $2}'`;do echo -e "\n#\nlog4j.additivity.${i}=false\nlog4j.logger.${i}=debug,${i}Append\nlog4j.appender.${i}Append=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.${i}Append.File=log/${i}.log\nlog4j.appender.${i}Append.layout=org.apache.log4j.PatternLayout";echo "log4j.appender.${i}Append.layout.ConversionPattern=[%d][%p][%t]%c\:%L   %m\r\n";done >> /usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao

# 替换原来cmpp优先级的源文件
\mv /usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao /usr/local/zykj/zykjcmppserver/config/log4j.properties
保存退出
添加执行权限:
chmod +x /tmp/litaoDir/cmpp/cmppYouxianji.sh


cmpp账号cmpp账号,cmppserver优先级、cmpp优先级:

现在我写一个脚本,截取营销cmppserver账号,然后以固定的格式追加到一个文件里面,海哥给我一个办法就是:先cp一份草稿,在草稿里面去添加,看行不行,给海哥看一看,若行,就直接mv替换就行了,简直就是屌爆了

 

首先将cmpp优先级配置文件里面的true改为false

cat log4j.properties_caogao | grep true看有没有不相关的,重不重要,不重要的话执行下面的替换

sed -i -r 's@true@false@g'/usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao

 

cat /usr/local/zykj/zykjcmppserver/config/cfg.xml

这个里面的sourceAddr就是cmpp账号了

 

# 需要有目录:/tmp/litaoDir/cmpp

 

# 不要直接改源文件,不然执行有时间延迟,先搞一个草稿,并对源文件备份一次

cp /usr/local/zykj/zykjcmppserver/config/log4j.properties/usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao

cp /usr/local/zykj/zykjcmppserver/config/log4j.properties/usr/local/zykj/zykjcmppserver/config/log4j.properties-`date '+%Y%m%d_%H%M'`

 

cat /usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao

 

# 判断有哪些cmpp账户已经做了cmpp优先级的配置:

# cmpp优先级的配置文件里面的账户截取出来放到一个文件里

cat/usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao | grep"additivity" | grep -v "cmpp" | awk -F "."'{print $3}' | awk -F "=" '{print $1}' >/tmp/litaoDir/cmpp/cmppCount_log4j.txt

 

# cmpp主配置文件里面的所有账户截取出来放到一个文件里

cat /usr/local/zykj/zykjcmppserver/config/cfg.xml | awk -F"sourceAddr=" '{print $2}' | awk -F \" '{print $2}' | sort -r |tr -s "\n\n" "\n" | sort -n > /tmp/litaoDir/cmpp/cmppCount_main.txt

 

将这两个文件合起来一起看:

cat /tmp/litaoDir/cmpp/cmppCount_log4j.txt/tmp/litaoDir/cmpp/cmppCount_main.txt

 

去重并统计,前面是1的说明没有写在cmpp优先级配置文件里面,前面是3的说明cmpp优先级的配置文件里面肯定有重复的问题:

cat /tmp/litaoDir/cmpp/cmppCount_log4j.txt/tmp/litaoDir/cmpp/cmppCount_main.txt | sort | uniq -c

 

只截取前面是1

cat /tmp/litaoDir/cmpp/cmppCount_log4j.txt/tmp/litaoDir/cmpp/cmppCount_main.txt | sort | uniq -c |grep " 1 " |awk '{print $2}'

 

# 最后将没有写到cmpp优先级配置文件的账户追加到cmpp优先级配置文件里面去:

for i in `cat /tmp/litaoDir/cmpp/cmppCount_log4j.txt/tmp/litaoDir/cmpp/cmppCount_main.txt | sort | uniq -c |grep " 1 " |awk '{print $2}'`;do echo -e"\n#\nlog4j.additivity.${i}=false\nlog4j.logger.${i}=debug,${i}Append\nlog4j.appender.${i}Append=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.${i}Append.File=log/${i}.log\nlog4j.appender.${i}Append.layout=org.apache.log4j.PatternLayout";echo"log4j.appender.${i}Append.layout.ConversionPattern=[%d][%p][%t]%c\:%L   %m\r\n";done >>/usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao

 

# 替换原来的源文件

mv/usr/local/zykj/zykjcmppserver/config/log4j.properties_caogao/usr/local/zykj/zykjcmppserver/config/log4j.properties

 

上面的已经写成了脚本,在“提交感想”的记事本里面搜索“cmppserver优先级、cmpp优先级”

 

将上面写入到cmpp优先级配置文件的脚本放到开cmpp账户python里面去调用

 

python怎么调用shell脚本?

在“李涛掌游”自学python里面有提到

 

海哥提出的想法很好:将开CMPP账户这个操作做成网页的形式

 

 

做第四个程序;

第四个程序:physicalCard

问需不需redis,结果不需要redis

 

掌游智能物联网卡信息管理平台V1.0(在86服务器上,程序名叫physicalCard,位置在tomcat7cwebapps里面),超哥说这次就把程序放到tomcatwebapps里面,超哥说你现在还没弄清楚我们的平台网页呀,你看tomcat配置文件里面就能知道我们所有的网站在哪了

 

配置文件有哪些:还是在WEB-INFOclasses里面的appcfg配置文件

 

访问86的物联网卡的地址是什么:

那么我的网址应该是:

192.168.1.74:8080/physicalCard/employee/login.do

 

1、将项目拷贝上去

 

2tomcat配置文件里面添加

        <Contextpath="/physicalCard/download/" reloadable="true"docBase="/usr/local/tomcat6/webapps/physicalCard/download/"/>

        <Contextpath="/physicalCard/upload/" reloadable="true"docBase="/usr/local/tomcat6/webapps/physicalCard/upload/"/>

        <Contextpath="/physicalCard/demo" reloadable="true"docBase="../webapps/physicalCard/demo/"/>

 

3、数据库的数据结构导入、基础数据导入

问题:用户名和密码的表是哪个?

86pcard数据库将zyjs的导出来:

INSERT INTO"CARD"."T_EMPLOYEE" ("ID", "NAME","USER_NAME", "PASSWORD", "DEPARTMENT","EMAIL", "QQ", "MOBILE", "TEL","CREATE_USER", "CREATE_TIME", "UPDATE_USER","UPDATE_TIME", "DELETE_FLAG", "CUSTOMER_ID","ATTR_STR1", "ATTR_STR2", "ATTR_STR3","ATTR_STR4", "ATTR_STR5", "ATTR_STR6","ATTR_STR7", "ATTR_STR8", "ATTR_NUM1","ATTR_NUM2", "ATTR_NUM3", "ATTR_NUM4","ATTR_NUM5", "TEMP") VALUES ('1', 'zyjs', 'zyjs','7D7276013B9DB74463C61362B88E501C', '6', NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, '0', '0', '1', '1', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, NULL, '0');

账号zyjs,密码zyjs123

我发现一个问题:在我的physicalCard网页里面的“新增用户”里面没有部门,所以新增不了,怎么办?

答:需要在数据库的这个表了里面导入基础数据,同样在86physicalCard里面去导出来

 

4、要不要去掉按钮?

测试点了没有,日志出错再看

“添加告警”按钮没有选项选择,同样需要导入基础数据,去86表里面把数据转换为sql语句,导入到我自己的这个表里就行了

 

附录有用的:

数据库用户是card

数据库密码是jwms2pCfqRd5

测试页面用户名是test,密码是testtopup7

注意这次是把程序放到tomcat里面的webapps目录下

 

打包需用户体验:

vim/usr/local/tomcat6/webapps/physicalCard/WEB-INF/classes/appcfg.properties

 

 

 

数据恢复演练;尝试百度搜索怎么将oracle备份出来的.dmp文件导入到oracle数据库中去?

 

1.1、将表导出(虽然也可以直接用海哥教的办法)

将数据库中的表inner_notifynotify_staff_relat导出

expaichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmptables=(inner_notify,notify_staff_relat)

自己尝试:exppcard/Vz5dBktsnrQOzYXM@sms file="/u03/pcard_admin"tables=T_SMS_ADMIN_INFO

可以成功生成/u03/pcard_admin.dmp文件

1.2、将表导入

d:\daochu.dmp中的表table1 导入

imp  system/manager@TEST  file=d:\daochu.dmp

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入,在后面加上 ignore=y 就可以了。

自己尝试:imppcard2/Vz5dBktsnrQOzYXM@sms file="/u03/pcard_admin.dmp" full=yignore=y

 成功了

 

2.1、将数据库TEST完全导出

expsystem/manager@TEST file=d:\daochu.dmp full=y

自己尝试:exp  pcard/Vz5dBktsnrQOzYXM@smsfile="/u03/pcard_all"  full=y

2.2、将D:\daochu.dmp 中的数据全部导入 TEST数据库中:

impsystem/manager@TEST  file=d:\daochu.dmp

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入,在后面加上 ignore=y 就可以了:

imp  aichannel/aichannel@TEST full=y  file=d:\data\newsmgnt.dmp ignore=y

自己尝试:imppcard2/Vz5dBktsnrQOzYXM@sms file="/u03/pcard_all.dmp" full=y ignore=y

结果发现全库的全库恢复行不通,但是全库的指定的表恢复能行,解决办法:在navicat里面右键表,有导出向导和导入向导,简直就是屌爆了,结果发现导出的是0kb的,我去,这个navicat里面右键表导出向导是个骗子,然后我又发现还可以右键用户名,转储SQL文件-结构和数据,这个应该可以的,哇,导出的是.sql文件,需要打开方式为notepad++,不然会出现乱码,然后复制里面的内容到查询编辑器上,执行就ok了,结果发现还是不行,导出没问题,导入完毕后还是空的,没有表,我去,我仿佛又被navicat的右键骗了,后来我注意到了,原因是用户名不对,需要对导出来的.sql文件进行处理才行,具体实施步骤请见“李涛掌游- oracle数据库导出导入的那些事儿(oracle全备).docx

2.3、将d:\daochu.dmp中的表table1 导入

imp  system/manager@TEST  file=d:\daochu.dmp  tables=(table1)

自己尝试:imppcard3/Vz5dBktsnrQOzYXM@sms file="/u03/pcard_all.dmp"tables=T_SMS_ADMIN_INFO ignore=y buffer=819200

报错IMP-00033: 警告: 在导出文件中未找到表"T_SMS_ADMIN_INFO"

百度还是厉害啊,解决了:imppcard3/Vz5dBktsnrQOzYXM@sms file="/u03/pcard_all.dmp" fromuser=pcardtouser=pcard3 tables="T_SMS_ADMIN_INFO" ignore=y buffer=819200

 

提示:full=y代表全部;用户名/密码@远程的IP:端口/实例;停掉数据库是shutdown immediate,停掉之后navicat里面也会断掉,需要重新连接

 

全备的话,刘超超会搞,用的是PL/SQL软件(但是这只是表空间的全备,而没有基础数据),我现在要搞的就是解决这个问题:一定要解决的问题就是:

 

这个只是导出的表结构,没有基础数据

问刘超怎么导出数据?PL/SQL里面工具-导出用户对象,就可以导出表结构了

 

目前我能想到全备的方法就是:

导出表结构和序列:在PL/SQL里面工具,导出用户对象

导出基础数据:在navicat里面导出向导为sql文件,而且要导入到相同文件夹,而不是相同文件,不然最后是0kb的,然后去那个文件夹下面按大小排序,不是0kb的说明有数据,统计在一个文本里面然后执行,注意打开的方式要以notepad++来打开,否则会有乱码

 

oracle备份、备份备份备份、oracleoracle

偶然发现的全备(表结构和基础数据一起)或“只导表结构”屌炸天的方法,简直就是帅呆了、酷毙了,简直无法比喻了:

navicat里面:右键用户名,转储SQL文件-结构和数据,这个应该可以的,哇,导出的是.sql文件,需要打开方式为notepad++,不然会出现乱码,然后复制里面的内容到查询编辑器上,执行就ok了,结果发现还是不行,导出没问题,导入完毕后还是空的,没有表,我去,我仿佛又被navicat的右键骗了,后来我注意到了,原因是用户名不对,需要对导出来的.sql文件进行处理才行,具体实施步骤请见“李涛掌游- oracle数据库导出导入的那些事儿(oracle全备).docx

notepad++可以使用正则匹配关键词删除关键词所在的行

 

具体实施步骤请见“李涛掌游 - oracle 数据库导出导入的那些事儿 (oracle 全备 ).docx









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值