自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chhuma专栏

数据库管理、运维相关工作笔记

原创 忘记MySQL数据库root帐号密码,怎么修改过来?

背景: MySQL数据库root帐号一般只有MySQL DBA知道,这个帐号的密码需要严格保密,一旦泄漏问题很严重;但是如果DBA忘记了,则不能进行某些MySQL的管理工作,这时就必须在保证数据安全、无损坏的情况重置root帐号密码 步骤: 1. 停止mysqld数据库服务     she...

2012-06-26 17:30:13 4848 0

原创 关闭MySQL(版本5.1)服务器进程的方法,推荐使用mysqladmin客户端工具

背景: 正确关闭MySQL服务器进程非常重要, 不恰当关闭的方法会导致数据库损坏crash 方法一: 使用mysqladmin shutdown命令进行关闭,推荐方法 shell> mysqladmin --host=127.0.0.1 --port=3306 --user=xx...

2012-06-25 19:47:29 1011 0

原创 使用LOCK TABLES、UNLOCK TABLES语句验证MySQL存储引擎MyISAM锁机制(一)

背景: 假设表T_01表创建语句如下: create table t_01 (name varchar(31), age int) engine=myisam; 一、验证获取MyISAM表读锁后,能否对数据进行更新 1. 登录MySQL服务器,启动会话A,获取表T_01读锁     ...

2012-06-21 12:33:40 1056 0

原创 使用mysql登录数据库后,如何查看当前数据库?

1. 通过函数database()实现     mysql> SELECT database(); 2. 通过show tables实现     mysql> show tables;     注:注意查看列头形式, 格式为:Tables_in_[db_name] 3...

2012-06-12 19:10:26 11478 0

原创 CSS中position属性值relative与absolute区别

背景:     在做网页设计时,需要定位HTML元素位置时,势必要使用到CSS样式position值relative、absolute。 样例: A B C D E 注:position值为relative的元素以其前面兄...

2012-04-21 19:57:25 5719 0

原创 SQL Server数据库常用SQL

1.备份已有表的部分数据    SELECT * INTO T_01_BAK0401 FROM T_01 WHERE 1=2    注:创建表T_01_BAK0401,结构和T_01相同 2.将查询数据插入到表(后面最好带列名column_name)    INSERT INTO T_...

2012-04-02 07:55:09 449 0

原创 数据库表连接后获取记录条数之COUNT函数

问题背景: 今天Java开发工程师咨询,如下SQL语句COUNT函数值怎么会比表T_1行数、表T_2行数都大? 并说是不是ORACLE数据库的BUG? SQL: select count(*) from t_1, t_2 where t_1.id=t_2.id and t_1.id=1; ...

2012-03-06 19:58:37 2588 0

原创 数据量10亿级别的数据库表,多行存储成一行、一列扩展成多列之数据优化及迁移方案(三)

数据升级:update_t_origin.sql -- 重命名旧表 alter table t_origin rename to bak_t_origin; -- 同义词方案,将新表切换上线 create or replace synonym t_origin for t_origin_0...

2011-12-20 11:47:16 1200 0

原创 数据库平滑演进或者说数据平滑迁移方案及步骤

背景: 随着系统环境的变化(如:数据量过大等),一个系统的数据库结构需要跟随调整优化,以满足业务要求。特别是在互联网应用系统的开发过程中,数据库的变化比较频繁,这时必须从技术上保证数据库能平滑、透明地进行迁移。 数据库平滑迁移需要遵守的严则: 1. 尽量透明, 迁移过程不能影响业务运行 ...

2011-12-20 07:49:12 1663 0

原创 如何将类似UNIX系统中的ed编辑器命令脚本化

背景: 类UNIX系统的编辑器有很多,比如vi,emacs等 ,这些编辑器功能非常强大。而ed是行编辑器,也就是说每次编辑都是以行为单位。个人认为ed编辑器功能虽然不如vi等强大,但是命令好记,功能简单足够。假如需要对许多文件做相同的编辑操作,如果逐个打开文件,然后输入一堆相同的命令,这势必降低...

2011-12-07 07:49:55 1361 0

原创 数据量10亿级别的数据库表,多行存储成一行、一列扩展成多列之数据优化及迁移方案(二)

数据迁移:migrate_update_t_origin.sql 迁移回滚:migrate_undo_t_origin.sql -- 数据迁移失败, 进行回滚; 数据迁移失败时回滚只需要将数据迁移过程中创建的表删除即可 declare   i_count integer defau...

2011-12-01 08:38:43 1390 0

原创 数据量10亿级别的数据库表,多行存储成一行、一列扩展成多列之数据优化及迁移方案(一)

问题背景: 原表设计如下,业务上是把登陆用户的商品以priority顺序方式列表显示,但是此列表显示非常慢。 create table t_origin (   user_id     varchar2(11),   goods_id    varchar2(19),   priori...

2011-11-30 16:38:01 3510 0

原创 采用Shell及AWK脚本实现磁盘使用空间监控

背景: 在应用程序中,经常需要配置FTP空间存放数据,同样数据库也需要大量的磁盘存放业务数据。如果FTP和数据库磁盘空间不够,却没有及时通知相关人员进行处理,就会导致程序错误或者数据库无法存储数据。这类故障是及其严重的。 Shell脚本(disk_space_warn.sh): #!...

2011-11-23 07:56:43 1296 0

原创 采用Shell编程实现随机函数(包括整数、符点数、字符、日期时间),顺便与AWK实现作下性能对比

Shell(bash)实现的随机函数(保存在random_function.sh文件): #!/bin/bash # # 产生各类型数据随机函数(BASH实现) # chm, 461810517@qq.com # 2011/11/16 # # BASH中RANDOM伪变量,会随机产生...

2011-11-19 09:27:20 3395 0

原创 互联网应用上线后,别忘记实现部署这些运维监控脚本

背景: 互联网应用,往往面临高并发、高可用等挑战,一但应用出现问题而没有及时发现,导致系统宕机,其损失是及其重大的。所以及时有效的监控到异常,并将异常及时通知相关责任人可以最大限度的降低损失。及时有效的监控到异常可以通过定时程序来实现,而异常及时通知功能目前最好是以短信的方式进行通知。 监...

2011-11-11 20:53:01 820 0

原创 数据库树型结构中获取目录串的高性能方法,sys_connect_by_path与自定义函数性能对比

背景: 假设有如下文件夹表T_FOLDER,其DDL语句如下,根据文件夹主键ID获取此文件夹所在的目录串(格式为/id1/id2)? create table t_folder ( id number(15) primary key, name varchar2(32), paren...

2011-10-25 07:55:38 912 1

原创 数据库设计心得 --- 树形结构

背景: 树型结构表的设计在实践中, 经常碰到. 如果设计不好, 则会给应用程序的实现导致很大的麻烦. 这里以文件夹、文件作为例子介绍 实现: -- 文件夹信息表 create table t_folder ( folder_id number primary key,

2011-10-12 20:49:47 2949 0

原创 SQL*Plus使用心得

背景: 身为Oracle DBA,必须熟练使用Oracle数据库客户端工具SQL*Plus,而且大部分情况下,很可能就是你管理Oracle数据库的唯一工具。 使用: 1. 当执行SQL*Plus匿名PL/SQL语句块时,需要插入语句,如何输入分号“;” 假设SQL*P

2011-10-07 10:36:15 433 0

原创 Linux下命令TOP中的常用交互命令

背景: 在监控、诊断服务器(如Oracle Database Server)性能时,TOP命令在类UNIX系统中最经常使用。 各使用场景: 1. 2500毫秒刷新一次TOP内容,总共5次,输出内容存放到performace.txt文件中 # top -b -d 2.5

2011-10-07 10:34:10 721 0

原创 结合SQL*Loader、AWK工具为表构造大数据量,以备测试

背景: 假设对需求进行评估后,发现某表数据量为1000万,表名为T_1,表结构如下: COL_1    NUMBER(3) COL_2    NUMBER(5, 2) COL_3    VARCHAR2(10) COL_4    DATE 问题: 需要往表T_1

2011-10-07 10:31:10 592 0

原创 采用AWK编程实现随机函数(包括整数、浮点数、字符串、日期时间)

背景: 作为Oracle Database DBA,经常需要构造数量级百万、千万、甚至更多的数据来进行脚本性能测试。如何快速产生这些数据呢?我们可以用Shell、Perl、AWK等编程实现,目前经过本人测试发现:相同的实现算法采用AWK效率更高,Perl次之,Shell过慢。

2011-10-07 10:26:37 1571 0

原创 类UNIX系统中AWK编程注意事项

背景: AWK是类UNIX系统中的文本处理工具,使用AWK编程实现基于文本数据库统计,往往效率比较好,至少我测试的情况比PERL脚本效率高不少。 注意事项: 1. AWK编程中,定义函数时,不建议在函数中使用全局变量。原因是不利函数重 2. AWK编程中,建议将所有局部变量定义在函...

2011-10-07 10:22:17 474 0

原创 如何对数据量8亿的表中数据去重,其中重复的数据是总数据12.5%

背景: 某定时应用程序(每天02:00启动)会读取指定目录下的所有txt扁平数据文件,并将数据保存到ORACLE数据库。本来应用程序将txt文件中数据入库后,会将目录中的txt数据文件备份到另外的目录中,但是应用程序有BUG导致备份失败。应用程序初始运行时需要对1亿全量的数据入

2011-10-07 10:18:21 4617 1

原创 如何打包oerr客户端程序,而不是为了使用oerr工具而安装整个ORACLE数据库

背景: Oracle数据库中查询错误代码相关的Cause和Action时,需要使用oerr工具。oerr工具是随Oracle数据库程序默认安装的,如果仅仅想使用oerr工具查看Error Message,再重新安装Oracle数据库即花时间也占用大量磁盘空间。Oracle提供了

2011-10-07 10:15:02 600 0

原创 使用SQL*Plus操作数据库,当出现Error Message时,如何在简体中文和英文之间切换?

背景: Oracle DBA登录后台数据库进行管理操作时,一般都是使用SQL*Plus客户端工具进行,如果操作出现ora类型的Error Message时,有的人想看简体中文错误提示,有的人想看纯英文错误提示(如:本人),如何设置呢?   介绍: 要达到提示中英文切换,我

2011-10-07 10:09:54 1621 0

原创 如何为ORACLE表空间或临时表空间增加数据文件?

背景: 当通过ORACLE中的create table ... as select 语句创建一张新表时,新表的数据量为比较大,如10亿,这时SQL*Plus很可能就会提示“ORA-01653: ...”错误信息。这个错误信息暗示表空间大小不够,需要为表空间增加数据文件。 分析

2011-10-03 12:07:45 45225 0

原创 杀死或者断开连接到ORACLE数据库的用户会话

背景: 如果连接到ORACLE数据库用户正在执行非常耗时、耗资源的SQL操作,导致业务非常慢、甚至中断;这个时候就需要查找出正在执行耗时、耗资源的SQL操作会话,并将其杀死,从而恢复业务 步骤: 1. 查找正在耗时、耗资源SQL操作的会话 2. 杀死会话     ALT

2011-10-03 09:59:40 3392 0

原创 通过USER_SOURCE、DBA_SOURCE、ALL_SOURCE查询Oralce数据库对象DDL语句

背景: 在很多情况下,我们都希望获取某个对象的SQL语句,以方便进一步分析问题。如:存储过程编译失败,我们可以通过详细错误信息知道代码哪行出现错误,而源SQL语句不是自己开发,这时就需要知道ORACLE数据库对象DDL语句 方法: SELECT NAME, LINE, TE

2011-10-03 09:55:24 2103 0

原创 使用SQL*Plus创建ORACLE存储过程报编译错误,如何知道具体错误信息?

问题: 采用SQL*Plus登录ORACLE数据库,创建存储过程如果报错的话,往往就提示一句“Warning: Procedure created with compilation errors.”,如何显示或定位出详细的错误信息? 方法一: 在SQL*Plus中输入命令:

2011-10-03 07:25:44 9646 1

原创 在开发中如何跟踪Oracle数据库SQL的执行

select a.sql_text,a.FIRST_LOAD_TIME,a.EXECUTIONS from gv$sql a,dba_users b where a.PARSING_USER_ID=b.user_id AND b.username=upper('ygtest'...

2006-01-08 13:10:00 999 0

提示
确定要删除当前文章?
取消 删除