oracle之archive模式

1、查看是否归档
archive log list;
2、开启归档模式

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

3、ARCn进程的数量
alter system set log_archive_max_processes=3;(最多十个)
4、自动归档
alter system set log_archive_start=true;(10g之后默认为true)
5、停止/启动归档(10g好像不行)
ALTER SYSTEM ARCHIVE LOG STOP;
alter system archive log start to ‘c:\temp’;
6、常用的归档操作
alter system archive log current ;
alter system switch logfile;
7、log_archive相关参数

alter system set log_archive_dest_1='location=c:\temp mandatory reopen=500';
--mandatory必须归档成功,optional表示归档不一定要求成功
--reopen每5秒重试一次
--log_archive_dest_n最多可以配置10个,从1开始(可以是service)
Alter system set log_archive_min_succeed_dest=2;
--表示要求最少的归档成功的数目,如果mandatory大于该值,就以mandatory为准
Alter system set log_archive_dest_state_3=defer;
--defer表示延迟启用,enable表示启用

oracle 之instance recovery

1、设置mttr(两次故障时间间隔)
fast_start_mttr_target=300
2、通过设置checkpoint相关参数
log_checkpoint_interval(checkpoint发生的块数)
log_checkpoint_timeout(checkpoint发生的时间间隔)
3、instance recovery相关视图
v$instance_recovery(相关信息汇总)
v$fast_start_servers(相关slaves进程信息)
v$fast_start_transactions(相关回滚事务信息)
4、恢复时的进程并发数
recovery_parallelism(前滚)可选值为int
fast_start_parallel_rollback(回滚)可选值为string类型:high/low/false

oracle之shared模式配置

1、配置服务器端参数
1.1、必填
dispatchers='(protocol=tcp)(dispatchers=2)’
shared_servers=2
1.2、可选项(均为9i中的默认值)
max_dispatchers=5
max_shared_servers=20
circuits=170
shared_server_sessions=165
2、配置客户端参数
XIFENFEI =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER =SHARED)
(SERVICE_NAME = xifenfei)
)
)
note:
1)DEDICATED为非共享模式,若无指定,默认先用shared
2)shared不能startup、shutdown、backup数据库等操作
3、查看当前会话的服务器模式
select sid,server from v$session where sid in (select sid from v$mystat);
select circuit,dispatcher,status from v$circuit;–只有shared连接记录保存在这个视图中

oracle之网络配置

1、监听程序listener
进入listener:lsnrctl
查看状态:status,重新加载:reload
启动:start listenername(默认(listener)可以不写)
关闭:stop listenername(默认(listener)可以不写)
查看dispatcher状态:services
2、不配置tnsnames.ora直接访问oracle
sqlplus chf/xifenfei@11.1.1.2:1521/xifenfei
sqlplus username/password@ip:port/service_name
注:如果端口是1521(default port可以不指定)
3、使用tnsping检查tns是否正常
tnsping vpc 10
tnsping tnsname(tns名称) count(ping的数量)

mysql数据库备份加强版

上次写过一个mysql数据库windows版的脚本备份,虽然能够实现功能,但是不是很完美,还有bug,就是备份后为了保存备份记录,dos窗口没有被关闭,这样导致如果没有人工的干预,就不能进行第二天的备份。现在的设计思想是把备份数据库时的相关信息,保存到日志文件中,任何维护人员只要查看log信息就可以知道备份情况,而不用每天登录服务器,查看dos信息,然后关闭才能够进行下一天的备份,使用该备份后,工作人员只要一段时间登录服务器查看log信息就可以知道备份的情况,而且可以通过远程直接telnet就可以查看,比起以前大为方便,人性化了
采用两个脚本实现(本次使用本blog的数据库说明)
1、执行备份操作

@echo off
echo WordPress数据库备份
echo.
echo 程序启动时间:%date% %time%
echo.
set "Name=%date:~,4%%date:~5,2%%date:~8,2%_%random%"
set "Path=e:\MySql_BackUp\wp_%Name%"
md %Path%
echo 保存备份数据库文件路径为:%Path%
echo ***********************************************************
echo.
echo %time%:开始备份wordpress数据库……
echo.
e:\AppServ\MySQL\bin\mysqldump --opt -u root --password=4020894 -F -B --default-character-set=utf8 wordpress > %Path%\wordpress.sql
echo 文件:%Path%\wordpress.sql
echo %time%:wordpress数据库备份完成
echo.
echo ***********************************************************
echo 程序结束时间:%date% %time%
echo.
echo ***********************************************************
echo.
echo.
echo.

执行wordpress数据库备份
2、执行保存Log的脚步

C:\script\wordpress.bat >>E:\MySql_BackUp\Log\wp_%date:~,4%%date:~5,2%%date:~8,2%.log
exit

日志是以天为单位保存,存取追加方式保存(及一天内如果有多长备份,会被追加到日期为文件名的日志文件中)
3、添加为windows计划任务中
把保存日志的脚本文件设置到windows的计划任务中,设置相关执行时间,即可实现自动化无需人工干预,保存日志的mysql数据库备份
上一个版本的mysql数据库备份地址为:
mysql数据管理

过来人对生活建议

(一)
1.不要在流泪的时候做任何决定,情绪负面的时候说话越少越好。
2.不要去反复思考同一个问题,不要把所有的感情都放在一个人身上,你还有父母,还有其他朋友。
3.不要害怕做错什么,即使错了,也不必懊恼,人生就是对对错错,何况有许多事,回头看来,对错已经无所谓了。
4.有负面情绪是正常的,但是自己一定要知道,要明白这只是生活的一小部分,在其余的时间里,要尽量的让情绪平稳起来。
5.那个人突然不联系你了,很正常;那个人突然又联系你了,也很正常,这也不说明什么。
6.如果不懂,就说出来,如果懂了,就别说,笑笑即可。
7.一切的烦恼都是自找的,因此也只能自己解决,不要找朋友哭诉,找他们去打球。
8.说过的话一定要做到,即使是很蠢的话,再蠢也比言而无信好。
9.无论发生怎样的变故,不要打破生活原有的规律,要按时吃饭,按时睡觉。
10.不要去害怕做一件事,不要害怕触景伤情,不要害怕说错话,不要害怕想起过去,不要害怕面对未来。
11.无论是对是错,你需要一个准则,你的行为应该遵循这个准则,并根据现实生活不断的修正。反反复复优柔寡断的人,是不可能讨人喜欢的,在对错之间徘徊的人,形象不如从错到对的人正面。
12.当他说“让我们冷静一段时间好吗?”的时候,冷静的说好,然后挂断电话。不要哀求,他不是来征求你意见的。
13.不要把心底的话全掏出来,这些是只属于你的财富。
14.不要跟一个人和他议论同一个圈子里的人,不管你认为他有多可靠。
15.当你不知道和他说什么的时候,那就什么也不要说,沉默有无限种含义。
16.不要追求什么结果,每个人结果都一样,就是死亡。
17.不要后悔,无论怎样都不要后悔,后悔的情绪比你所做错的事更可怕,因为这会摧毁你的自信,自尊以及很有可能让你去做一件更错的事。
(二)
1、别低估任何人。
2、你没那么多观众,别那么累。
3、温和对人对事。不要随意发脾气,谁都不欠你的。
4、现在很痛苦,等过阵子回头看看,会发现其实那都不算事。
5、和对自己有恶意的人绝交。人有绝交,才有至交。
6、学会宽容伤害自己的人,因为他们很可怜,各人都有自己的难处,大家都不容易。
7、学会放弃,拽的越紧,痛苦的是自己。
8、低调,取舍间,必有得失。
9、不要试图给自己找任何借口,错误面前没人爱听那些借口。
10、慎言,独立,学会妥协的同时,也要坚持自己最基本的原则。
11、付出并不一定有结果。坚持可能会导致失去更多。
12、过去的事情可以不忘记,但一定要放下。
13、活得轻松,任何事都作一个最好的打算和最坏的打算。
14、做一个简单的人,踏实而务实。不沉溺幻想。不庸人自扰。
15、不说谎话,因为总有被拆穿的一天。
16、别人光鲜的背后或者有着太多不为人知的痛苦
17、尽量充实自己。不要停止学习。不管学习什么,语言,厨艺,各种技能。
18、注意自己的修养,你就是孩子的第一位老师。
19、孝顺父母。不只是嘴上说说,即使多打几个电话也是很好的。
20、爱父母,因为他们给了你生命,同时也是爱你爱的最无私的人。
21、偶尔也要现实和虚伪一点,因为不那样做的话,很难混。
22、收敛自己的脾气,偶尔要刻意沉默,因为冲动会做下让自己无法挽回的事情。
23、无论什么时候,做什么事情,要思考。
24、永远不要给背叛过自己的朋友第二次的背叛的机会。
25、无论是谁,都有自己的限度。特别是信任。
26、懂得倾听别人的忠告。
27、别人说的记在脑袋里,而自己的,则放在心里。
28、尽量不要讲同事朋友的八卦。
29、信佛,信因果,在真正的因果面前,人的力量是微不足道的。
30、坦然接受生活给你的馈赠吧,不管是好的还是坏的。
31、真正了解无常的含义,当你痛苦时,你要想这痛苦不是永恒的,当你快乐时,你要想这快乐也不是永恒的。
32、要快乐,要开朗,要坚韧,要温暖,对人要真诚。
33、空虚无聊的时候就读书,但一定得有自己的生活目标和计划。
34、对人性的弱点有清醒的认识,但要相信真诚的爱情,对爱情永远怀有单纯的向往。
35、不要太过依赖除自己以外的人,因为只有自己不会抛弃自己。
36、永远对生活充满希望,对于困境与磨难,微笑面对。
37、多看书,看好书。
38、少吃点,吃好的。
39、古龙说过,爱笑的女孩子,运气不会太差。
40、多交朋友,交好的朋友。女人一定要有闺密。
41、请记得,好朋友的定义是:你混的好,她打心眼里为你开心;你混的不好,她由衷的为你着急。
42、要有梦想,即使遥远。
43、努力爱一个人。付出,不一定会有收获;不付出,却一定不会有收获,不要奢望出现奇迹。
44、承诺是一件美好的事情,但美好的东西往往不会变为现实。
45、每个人都有自己鲜明的主张和个性,不要识途去改变他人,同样,也不要被他人所改变。改了,就不是自己了。
46、没有十全十美的东西,没有十全十美的人,关键是清楚到底想要什么。得到想要的,肯定会失去另外一部分。如果什么都想要,只会什么都得不到。
47、这个世界最脆弱的是生命,身体健康,很重要。
48、老天爷对每个人都是公平的。
49、不要试图控制别人,不要要求别人理解你
50、活在当下,别在怀念过去或者憧憬未来中浪费掉你现在的生活
51、不要忘本,任何时候,任何事情
52、要诚恳,要坦然,要慷慨,要宽容,要有平常心
53、学会忘记, 善忘是一件好事
54、要乐观,要积极,多笑,多照镜子
55、相信他说的话,但不要当真。
56、凡事多长心眼。
57、不要自作聪明。
58、做自己的决定。然后准备好承担后果。从一开始就提醒自己,世上没有后悔药吃。
59、自己不喜欢的人,可以报之以沉默微笑;自己喜欢的人,那就随便怎么样了,因为你的喜爱会挡也挡不住地流露出来。
60、相信因果报应!相信轮回!
61、要学会忍耐与坚持!
62这个世界上没有真正的爱情……时间可以冲淡一切
63、不要做刺猬 能不与人结仇就不与人结仇,谁也不跟谁一辈子,有些事情没必要记在心上
64、有时要学会听取身边人的意见,更多时候这样才不会让自己受到伤害。
65、忘记过去才能有新的开始。
66、这个世界很不公平。
67、不要太依赖朋友,人性基本都有恶的一面。
68、爱情很美好,相信爱情。如果连爱情都不相信那人生岂不太苦了?
69、想得到一样一定会失去另一件东西。
70、痛苦让人成长,是你进步的一个机会,一个挑战。别害怕痛苦的事情,它有另一面积极的作用。
71、人就是孤独的,缓解它带来的痛苦的唯一方式就是平静的接受它。
72、没有经历过的,永远不能理解这些道理,但听听也是好的。
73、可以不美丽,可以不可爱,可以不温柔,但是一定要诚实和善良。
74、喜爱一切美好的事物,赞美并享受它们所带来的美好。
75、当困难来临时,用微笑去面对,用智慧去解决。
76、要勇于承认自己所犯的错误,并承担其带来的责任。
77、爱家人,爱朋友,爱伴侣,爱孩子,然而,要真正为自己活。
78、永远不要为已发生的和未发生的事忧虑。已经发生既成事实忧虑也于事无补,未发生的凭主观臆测,无法推断事情的走向,徒增烦恼而已。
79、不要老在别人面前倾诉你的困境袒露你的脆弱。
80、不要想着依靠别人,要有目标有追求,这与年龄无关。
81、做一个简单的人,踏实而务实。不沉溺幻想。不庸人自扰。
82、学会思考,头脑清晰,明白自己的渺小,切忌自我陶醉。炮打出头鸟,凡事不要强出头,因为并没有想象中的强!
83、每个人都是独立的个体,真的没有谁离开谁就活不下去!
84、不要太高估自己在集体中的力量,因为当你选择离开时,就会发现即使没有你,太阳照常升起!
85、社会是有等级的,很多事不公平。别抱怨,因为没有用。
(三)
01.犯了错误就该诚实地认错——狡辩、诿过只会害了自己。
02.朋友之间要保持距离——这样的友谊才能长久。
03.钱追人,人追健康——有了健康,还怕挣不到钱么?
04.别轻易转行——转行的风险很高,最好不要轻率为之。
05.适度地抬高身价——在就业市场中,人也是一种商品。
06.把敬业变成习惯——从长期看是为了自己。
07.运用累积法壮大资产——不求快,不求多,不中断。
08.忍一时,争千秋形势比人强时,必须忍。
09.与其你死我活,不如你活我也活——这就是双赢,是良性竞争。
10.以“播种”的心态经营人际关系——种子播得越早越坚韧。
11.做事切勿率性而为——率性而为只会害了自己。
12.遇到魔鬼型的主管时——接受他的磨练可让你的性格越来越坚韧。
13.不要当众和主管吵架——那会让你无路可走,只有走人。
14.向不同行业的人学习新知识——记住,要用请教的态度。
15.所有的困难都是好事——这是老天爷在磨练你,目的是把重任交给你。
16.用吃亏就是占便宜的心态做人做事——那样你就可以迅速长大。
17.不要在失意者面前谈论你的得意——那样伤害你的人际关系。
18.不要小看守时这件事——守时是对别人的尊重。
19.用时间来看人——时间是检验大师。
20.用打听来看人——把获得的信息汇总,就可以了解那个人。
21.建立一个朋友档案——以免人到用时方恨少。
22.扩大交友圈——主动出击,不要等别人上门找你。
23.保持交友的弹性——敌人也可以变成朋友。
24.要交喜欢“修理”你的朋友——这种朋友是你的人生导师。
25.毛遂自荐,好处多多——让别人看到你,知道你的存在,知道你的能力。
26.小心突然升温的友情——对待这种友情的正确态度是:不推不迎,礼尚往来。
27.做老二,不做老大——老大没当好,容易变成老三老四。
28.做人要中规中矩——目的是赢得他人的尊重和信赖。
29.用“物质利”换取“人情利”——“物质利”是一时的,“人情利”是长远的。
30.不要独想荣耀——今天独享荣耀,明天可能就可能独吞苦果。
31.找一位“衣食父母”——那个人可减少你摸索的时间。
32.找一位对手来跟——跟住他,最终超越他。
33.用耐心把冷板凳坐热——冷板凳都坐过了,还有什么好怕的呢?
34.套用别人的成功模式——别人的成功模式可成为一种指引,让你有方向可循。
35.偷偷地把自己当成老板或主管——逐渐培养自己当老板或主管的能力。
36.不要满足于眼前的小成就——问问自己:我这辈子就这样了吗?
37.让自己尽快成为本行的专家——只要功夫深,铁杵磨成针。
38.不要有怀才不遇的想法——怀才不遇多半是自己造成的。
39.跌倒了,一定要爬起来——不爬起来,别人会看不起你,你自己也会失去机会。
40.不要为失败找借口——应该直面失败,并迅速找出失败的原因。
41.改变环境或改变自己——与其改变环境,不如改变自己。
42.不打没有把握的仗——生命是经不起一次次的浪费的。
43.把反省自己当成每日的功课——因为你不是完美的,会说错话,也会做错事。44.碰到低调时,自己鼓励自己——千万别蚯螅
45.依靠别人的智能做事——一个人的能力是有限的。
46.时时都要有危机意识——别以为你的命好运气也好。
47.主角配角都能演,台上台下都自在——面对人生,要练就能屈能伸的个性。
48.要学会控制自己的情绪——这是成熟的一个最重要的标志。
49.做乌龟,不做兔子——有兔子资质的人容易骄傲,而骄傲会成为成功路上的绊脚石。
(四)
50.先做小事,先赚小钱——为做大事赚大钱积累经验。
51.别让过去的失败捆住你的手脚,否则永远难成大事。
52.像蟑螂一样活着——人如果有蟑螂的韧性,还有什么日子不能过呢?
53.靠实力,不靠派系——派系不是永远的,实力才是你能依靠一生的东西。
54.自己发光,不要等别人把你磨光——谁有空、有心情去认真地“磨”你呢?
55.逢山开路,遇水架桥——要学会投其所好。
56.永远跑在下属的前面——权力领导、情义领导都不如才能领导。
57.“新官上任三把火”有必要——要大声地告诉别人:我来了。
58.只要5毛钱,不要1块钱——拿一块钱的机会只有一次。
59.放下架子,路就会越走越宽——架子只会捆住你的手脚。
60.话别说得太绝对——目的是给意外留有余地,以免下不了台。
61.尽快成为你所在的那一行的专家——只要努力就会成功。
62.多赞美别人——不用花钱,就能使人快乐,何乐而不为呢?
63.尊重别人的领土范围——别因为疏忽引发不必要的麻烦。
64.不要轻易吐露你的失意——以免被人认为你软弱无能。
65.人际关系的原则是:有舍才有得——你满足了对方,对方才会满足你。
66.不要忽略面子问题——不给面子的行为最容易引起是非。
67.妥善处理与小人的关系——不要依附他,也不要得罪他。
68.最好不要挡住别人的财路——与其挡人财路,不如自己别辟财路。
69.用低姿态化解别人的嫉妒——嫉妒是烈火,会烧毁掉一个人。
70.做人做事不必面面俱到——总会有人不满意你。
71.认识并运用人性中的自私——要想办法用别人的自私为自己谋利。
72.顺着毛摸,他就会听你的——脾气再大、城府再深、个性再强的人也吃不消这招。73.以积极的作为推动否极泰来——坚持住,努力向上,积累能力。
74.以戒备谨慎的心态延缓盛极而衰的时间——很多失败都是在兴盛时埋下的伏笔。
75.万事俱备,花自然会开——努力就行了,花什么时候开由老天爷安排。
76. 忍耐的实质就是,你要赚便宜你就赚,你想不要脸你就不要脸,随便。我能施舍给你的,我给;我给不了的,你找别人要去。至于别人给不给,那是你们的事了。
77. 对付虚伪的人,不是骂她,不是拆穿她,而是让她继续悲哀地虚伪着,然后装作什么也不知道。那么慢慢地,很多人会主动跑来告诉你她有多虚伪。
78. 对付自私的人,不是恨她,不是不理她,而是渐渐远离她,从心底远离她,然后装作什么都不知道。如果她去找别人,那么你会发现,很多人都远离了她。
79. 永远没有一个人是你离不开的,现在离不开的,不代表永远离不开。没有什么是你放弃不了的,你不放弃的可能会先放弃你也说不定。
80. 除了父母,没有什么人是不求回报的。恋人对你好是以爱情和谐为前提的,朋友对你好是以共同利益和消除寂寞为前提的。另外的人,就更不用说了。
81. 一个人生活虽然很难,但也必须学会一个人,不要轻易依赖别人。这是为了防止你身边的人都离开的时候,你还可以好好活下去。
82. 生病的时候,自己要重视自己,不能等着哪个谁来重视你。等到那时候,你会发现自己不管是身体还是心灵都已经很难受了。
83. 独自异地求学,要学着多和父母联系沟通,要学着多听长辈的话。要学着忍耐,没有什么是你忍不了的,别人再错,也犯不着拿别人的错误惩罚自己。
84. 但是,别人说的时候,尽量认真听,仔细别人和你说的话,不管出于什么初衷,能信但不能全信回应,这是对人的尊重。
85. 不要轻易试探你的好朋友,要不你不是很失望,就是多了个“神经病+想太多”的帽子。
86. 不要轻易对人多愁善感,就算你是真的多愁善感。别人可能不能理解你的多愁善感,也没这个义务和责任。这样的话,你想的发泄就变成了自取其辱和加深痛苦。
87. 在任何状况下,不能玩弄别人,玩人必被人玩。你再有心眼,也不是最厉害的那个。
88. 不要去抢属于别人的利益,但也不能纵容别人抢自己的。这是原则。
89. 没有必要去嫉妒别人的成绩,人缘,地位,奖学金之类。原因有五:1,别人可能真的付出得比你多,只不过你没看到。2,这些东西只能带来一时的满足,而不是永久的满足,不要也罢。3,这里面有你玩不来的游戏规则,玩的来的人也都挺累的。4,你有不如人的,就一定有比别人好的,静待时机。5,不争抢这些,你的朋友会更多。
90. 能帮助别人的,尽量帮忙。不能帮的,别勉强自己。
91. 对于喜欢和你对着干的人,首先要客观的反省自己,改正自己,消除自己的原因。其次,看清楚她是多么幼稚,让她一个人不开心好了。
92. 对于和自己生活习惯不同的人,把距离拉远一点,然后各自活各自的,不影响别人,也别要求别人改变。

oracle之数据库全球化(编码)

1、查看数据库字符集

select * from nls_database_parameters where parameter like '%CHARACTERSET';

2、计算字符长度标准(是按照byte还是按照character)

show parameter NLS_LENGTH_SEMANTICS;
select * from nls_database_parameters where parameter = 'NLS_LENGTH_SEMANTICS';
--note:这个只对char和varchar起作用,nchar、nvarchar、nclob长度是按照character计算

3、插入数据,查看其存入数据的16进制内容和编码

create table t(id int,name varchar2(20),name1 nvarchar2(20));
insert into t values(1,'程飞','程飞');
select dump(name,1016),dump(name1,1016) from t;
--结果
Typ=1 Len=6 CharacterSet=AL32UTF8: e7,a8,8b,e9,a3,9e
Typ=1 Len=4 CharacterSet=AL16UTF16: 7a,b,98,de

4、查询客户端nls相关参数信息

select * from nls_session_parameters;

5、配置nls相关参数
主要是配置NLS_LANGUAGE和NLS_TERRITORY或者配置NLS_LANG实现
5.1、设置NLS_LANG(环境变量级别)

或者使用:

set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

5.2、session级别设置:

alter session set nls_date_format='yyyy-mm-dd';
exec sys.dbms_session.set_nls('nls_date_format','dd.mm.yyyy');

5.3、sql语句级别:

select to_char(sysdate,'yyyy_mm_dd hh24:mi:ss',
'nls_date_language=''SIMPLIFIED CHINESE''') from dual;

note:优先级:sql语句级别>session级别>环境变量级别
六、排序
设置nls_sort决定

--拼音排序
alter session set nls_sort=schinese_pinyin_m;select * from orders order by name;
select * from orders order by nlssort(name,'nls_sort=schinese_pinyin_m');
--笔画排序
alter session set nls_sort=schinese_stroke_m;select * from orders order by name;
select * from orders order by nlssort(name,'nls_sort=schinese_stroke_m');
--汉字部首排序
alter session set nls_sort=SCHINESE_RADICAL_M;select * from orders order by name;
select * from orders order by nlssort(name,'nls_sort=SCHINESE_RADICAL_M');
--note:在sql语句级别的排序上可以使用nls_sort后面value可以使用双"'"表示整体

7、相关视图
nls_database_parameters–数据库初始化文件中的nls信息
nls_session_parameters–当前session中的nls信息
v$nls_valid_values–查看CHARACTERSET、SORT、TERRITORY、LANGUAGE中可以设置的相关参数
v$nls_parameters–对nls_database_parameters和nls_session_parameter中的nls信息的补充

oracle之数据导入

1、inset into select

ALTER TABLE EMP NOLOGGING;--为了使插入时少产生log记录,要修改表,不能直接加nologging

1.1、单线程插入

INSERT /*+ APPEND */ INTO TEST
SELECT * FROM B.TEST;
--加上/*+ APPEND */要比不加这个速度快的多,因为这个直接导入到高水位之后,而且是直接块对块的插入,不用经过复杂的sql转换

1.2、多线程插入

--创建分区表
 create table emp
 (empno number,
 ename varchar2(20))
 partition by hash(empno)
 (partition part1,
 partition part2);
--执行多线程插入
alter session enable parallel dml;
insert /*+ PARALLEL(emp,2) */ into emp
select  OBJECT_ID,TIMESTAMP from all_objects;

2、sql loader
上次服务器被攻击,我导入日志文件使用的是c#程序导入到oracle数据库中
这次使用sql loadr实现
control文件为

load data
infile data.log "str '\n'"
into table gj2
replace
fields terminated by ' '
TRAILING NULLCOLS
(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)

创建对应表

create table gj2(a1 varchar(10),a2 varchar2(10),
a3 varchar2(100),a4 varchar2(100),a5 varchar2(100),a6 varchar2(100),
a7 varchar2(200),a8 varchar2(100),a9 varchar2(100),a10 varchar2(100),
a11 varchar2(200),a12 varchar2(100),a13 varchar2(100), a14 varchar2(100));

执行sql loader

sqlldr b/b control=c:\abc.txt log=log.tx

这个非常方便,很快就把几十万条记录导入到数据库中了,而且直接提出a1和a2列进行分析就可以得到上次通过程序导入到数据库,然后再通过orcale的正则表达式功能选择出时间和ip地址,相比之下这个简单多了,很好用。
原始数据:

2010-07-02 10:55:02 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 221.232.180.193 - 403 1 0
2010-07-02 10:55:04 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 121.35.96.46 - 403 1 0
2010-07-02 10:55:07 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 119.178.8.242 - 403 1 0
2010-07-02 10:55:13 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 124.236.72.63 - 403 1 0
2010-07-02 10:55:13 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 58.60.253.104 - 403 1 0
2010-07-02 10:55:14 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 120.10.3.64 - 403 1 0
2010-07-02 10:55:18 W3SVC689347672 192.168.10.222 HEAD /index.shtml - 80 - 221.196.165.225 - 403 1 0
2010-07-02 10:55:21 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 116.16.159.224 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:21 W3SVC689347672 192.168.10.222 GET /anlewwwroot.zip - 80 - 120.84.23.2 Mozilla/4.0 404 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 122.226.148.190 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 122.226.148.190 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 121.204.33.120 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 202.30.113.101 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 58.101.51.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 114.41.216.107 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 58.101.51.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64
2010-07-02 10:55:22 W3SVC689347672 192.168.10.222 GET /index.shtml - 80 - 114.41.216.107 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+SV1) 200 0 64

使用sql loader处理后结果:

以前使用c#导入,oracle正则表达式处理日志为:
服务器遭攻击,oracle分析日志

程序员打油诗

写字楼里写字间,写字间中程序员
程序人员写程序,又将程序换饭钱
酒醒只在屏前坐,酒醉还来屏下眠
酒醉酒醒日复日,屏前屏下年复年
但愿老死计算机间,不愿鞠躬老板前
奔驰宝马贵者趣,公交自行程序员
别人笑我太疯癫,我笑自己命太贱
但见满街漂亮妹,哪个归得程序员
世人谣传程序员,能得世上不少钱,
换在他国可应验,到及本土只枉然,
不论程序之好坏,只要回扣放于先,
呆呆痴痴扣代码,天天恢恢计算机前,
到了月下一结账,不如配吃一攻关,
每天外行瞎指点,还要穷词去分辩,
早知先丢脸皮尽,混到政府做庸官,
只能奉劝后来者,勿做中国程序员。
宁愿老死程序间,只要老板多发钱;
小车大房不去想,撰个2千元好过年。
若要见识新世面,公务员比程序员;
一个在天一在地,而且还比我们闲。
别人看我穿白领,我看别人穿名牌;
天生我才写程序,臀大近视肩周炎。
年复一年春光度,度得他人做老板;
老板扣我薄酒钱,没有酒钱怎过年.
春光逝去皱纹起,作起程序也委靡;
来到水源把水灌,打死不做程序员.
别人笑我忒疯癫,我笑他人命太贱;
状元三百六十行,偏偏来做程序员。
但愿老死计算机间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
若将程员比妓女,一在平地一在天;
若将程员比车马,他得驱驰我无闲。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员。
不想只挣打工钱,那个老板愿发钱;
小车大房咱要想,任我享用多悠闲。
比尔能搞个微软,我咋不能捞点钱;
一个在天一在地,定有一日乾坤翻。
我在天来他在地,纵横天下山水间;
傲视武林豪杰墓,一樽还垒风月山。
计算机面前眼发直,眼镜下面泪茫茫;
做梦发财好几亿,从此不用手指忙。
哪知梦醒手空空,老板看到把我训;
待到老时眼发花,走路不知哪是家。
各位在此穷抱怨,可知小弟更可怜;
俺学程序两年半,至今没赚一分钱。
听说三十是末日,二十三岁在眼前;
发誓立志傍微软,渺渺前程对谁言?
小农村里小民房,小民房里小民工;
小民工人写程序,又拿代码讨赏钱。
钱空只在代码中,钱醉仍在代码间;
有钱无钱日复日,码上码下年复年。
但愿老死代码间,不愿鞠躬奥迪前,
奥迪奔驰贵者趣,程序代码是贫者缘。
若将贫贱比贫者,一在平地一在天;
若将贫贱比车马,他得驱驰我得闲。
别人笑我忒疯癫,我笑他人看不穿;
不见盖茨两手间,财权富贵世人鉴。
投身I T英勇无畏,
工作行业看似高贵,
其实生活极其琐碎,
为了生计吃苦受累,
鞍前马后终日疲惫,
客人投诉照死赔罪,
点头哈腰就差下跪,
日不能息夜不能寐,
老板一叫立即到位,
一年到头加班受罪,
劳动法规统统作废,
身心交瘁暗自流泪,
屁大点事反复开会,
逢年过节家人难会,
分分秒秒不敢离位,
迎接审核让人崩溃,
接待应酬经常喝醉,
不伤感情只好伤胃,
工资不高自己交税,
走亲访友还得破费,
抛家舍业愧对长辈,
身在其中方知其味,
不敢奢望社会地位,
全靠傻傻自我陶醉。

oracle之user 管理

一、profile管理
1、profile创建

create profile fei_profile limit
 sessions_per_user 1
 cpu_per_session 30000
 cpu_per_call 600
 connect_time 300
 idle_time 60
 logical_reads_per_session 300
 logical_reads_per_call 100
 failed_login_attempts 2
 password_life_time 1
 password_reuse_time 3
 password_reuse_max 10
 password_lock_time 1;

2、修改profile

alter profile fei_profile limit
connect_time 400
idle_time 200;

3、删除profile

drop profile fei_profile;

二、创建用户
1、准备工作

--查看表空间
select tablespace_name,contents from dba_tablespaces;
--查看默认临时表空间
select * from database_properties where property_name like '%TEMP_TABLE%';

2、创建用户
2.1数据库认证

create user abc
identified by abc
default tablespace abc
temporary tablespace temp
quota 10m on abc
quota 5m on users
password expire
account lock;

2.2、操作系统认证

--查看os_authent_prefix(前缀+操作系统用户名=数据库登陆名)
show parameter os_aut--查看结果为:OPS$
--创建用户
create user OPS$ff identified externally default tablespace abc;

三、修改用户

alter user abc account unlock;

四、删除用户

drop user abc cascade;--表示删除该用户下的所有objects

五、授权和回收
5.1、system级别权限

grant create session,create table to abc with admin option;--可以传递该授权(续传的权限不会被回收)
revoke create session,create table from abc;
grant create session,create table to fei identified by fei;
--用户不存在直接创建该用户,存在则修改用户密码

5.1.1权限类型

select * from session_privs;--查看本用户所具有的权限
ALTER SYSTEM
AUDIT SYSTEM
CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
CREATE TABLESPACE
ALTER TABLESPACE
MANAGE TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
CREATE USER
BECOME USER
ALTER USER
DROP USER
CREATE ROLLBACK SEGMENT
ALTER ROLLBACK SEGMENT
DROP ROLLBACK SEGMENT
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
BACKUP ANY TABLE
DROP ANY TABLE
LOCK ANY TABLE
COMMENT ANY TABLE
SELECT ANY TABLE
INSERT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
CREATE CLUSTER
CREATE ANY CLUSTER
ALTER ANY CLUSTER
DROP ANY CLUSTER
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
CREATE SYNONYM
CREATE ANY SYNONYM
DROP ANY SYNONYM
SYSDBA
SYSOPER
CREATE PUBLIC SYNONYM
DROP PUBLIC SYNONYM
CREATE VIEW
CREATE ANY VIEW
DROP ANY VIEW
CREATE SEQUENCE
CREATE ANY SEQUENCE
ALTER ANY SEQUENCE
DROP ANY SEQUENCE
SELECT ANY SEQUENCE
CREATE DATABASE LINK
CREATE PUBLIC DATABASE LINK
DROP PUBLIC DATABASE LINK
CREATE ROLE
DROP ANY ROLE
GRANT ANY ROLE
ALTER ANY ROLE
AUDIT ANY
ALTER DATABASE
FORCE TRANSACTION
FORCE ANY TRANSACTION
CREATE PROCEDURE
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
DROP ANY PROCEDURE
EXECUTE ANY PROCEDURE
CREATE TRIGGER
CREATE ANY TRIGGER
ALTER ANY TRIGGER
DROP ANY TRIGGER
CREATE PROFILE
ALTER PROFILE
DROP PROFILE
ALTER RESOURCE COST
ANALYZE ANY
GRANT ANY PRIVILEGE
CREATE MATERIALIZED VIEW
CREATE ANY MATERIALIZED VIEW
ALTER ANY MATERIALIZED VIEW
DROP ANY MATERIALIZED VIEW
CREATE ANY DIRECTORY
DROP ANY DIRECTORY
CREATE TYPE
CREATE ANY TYPE
ALTER ANY TYPE
DROP ANY TYPE
EXECUTE ANY TYPE
UNDER ANY TYPE
CREATE LIBRARY
CREATE ANY LIBRARY
ALTER ANY LIBRARY
DROP ANY LIBRARY
EXECUTE ANY LIBRARY
CREATE OPERATOR
CREATE ANY OPERATOR
ALTER ANY OPERATOR
DROP ANY OPERATOR
EXECUTE ANY OPERATOR
CREATE INDEXTYPE
CREATE ANY INDEXTYPE
ALTER ANY INDEXTYPE
DROP ANY INDEXTYPE
UNDER ANY VIEW
QUERY REWRITE
GLOBAL QUERY REWRITE
EXECUTE ANY INDEXTYPE
UNDER ANY TABLE
CREATE DIMENSION
CREATE ANY DIMENSION
ALTER ANY DIMENSION
DROP ANY DIMENSION
MANAGE ANY QUEUE
ENQUEUE ANY QUEUE
DEQUEUE ANY QUEUE
CREATE ANY CONTEXT
DROP ANY CONTEXT
CREATE ANY OUTLINE
ALTER ANY OUTLINE
DROP ANY OUTLINE
ADMINISTER RESOURCE MANAGER
ADMINISTER DATABASE TRIGGER
MERGE ANY VIEW
ON COMMIT REFRESH
EXEMPT ACCESS POLICY
RESUMABLE
SELECT ANY DICTIONARY
DEBUG CONNECT SESSION
DEBUG ANY PROCEDURE
FLASHBACK ANY TABLE
GRANT ANY OBJECT PRIVILEGE
CREATE EVALUATION CONTEXT
CREATE ANY EVALUATION CONTEXT
ALTER ANY EVALUATION CONTEXT
DROP ANY EVALUATION CONTEXT
EXECUTE ANY EVALUATION CONTEXT
CREATE RULE SET
CREATE ANY RULE SET
ALTER ANY RULE SET
DROP ANY RULE SET
EXECUTE ANY RULE SET
EXPORT FULL DATABASE
IMPORT FULL DATABASE
CREATE RULE
CREATE ANY RULE
ALTER ANY RULE
DROP ANY RULE
EXECUTE ANY RULE
ANALYZE ANY DICTIONARY
ADVISOR
CREATE JOB
CREATE ANY JOB
EXECUTE ANY PROGRAM
EXECUTE ANY CLASS
MANAGE SCHEDULER
SELECT ANY TRANSACTION
DROP ANY SQL PROFILE
ALTER ANY SQL PROFILE
ADMINISTER SQL TUNING SET
ADMINISTER ANY SQL TUNING SET
CREATE ANY SQL PROFILE
EXEMPT IDENTITY POLICY
MANAGE FILE GROUP
MANAGE ANY FILE GROUP
READ ANY FILE GROUP
CHANGE NOTIFICATION
CREATE EXTERNAL JOB
--note:如果授权select any table 在默认情况下不能访问数据字典(O7_DICTIONARY_ACCESSIBILITY=false)
--如果修改O7_DICTIONARY_ACCESSIBILITY=true则可以访问数据字典

5.2、object级别授权与回收

grant select,update,delete on abc.abc_a to abc with grant option;--权限可以传递(如果被回收,续传下去的权限一并回收)
grant all on fei_a to abc;--把fei_a的所有相关操作授权给abc
revoke  select,update,delete on abc.abc_a from abc;
--note:update,insert可以指定表的列,而select不行,只能通过view实现限制功能

六、role的管理
6.1、role的创建

create role r_a;
create role r_b identified by r_b;

6.2/授权

grant create session to r_a;
grant create table to r_b;
grant r_a,r_b to b;--b为用户,把role授权给用户


6.3、查看role相关信息

select * from role_tab_privs where  ROLE LIKE 'R_%';
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE LIKE 'R_%';
SELECT * FROM ROLE_ROLE_privs where role like 'R_%';

6.4、设置default role 和enabl/disable role

alter user b default role r_a;
set role r_a,r_b identified by r_b;
--使用b用户登录,然后enable role r_a,r_b(注意密码)
--没有在set中写出来的role,表似乎disable