自定义博客皮肤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专栏

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

  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

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

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

2012-06-26 17:30:13 4986

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

背景:正确关闭MySQL服务器进程非常重要, 不恰当关闭的方法会导致数据库损坏crash方法一:使用mysqladmin shutdown命令进行关闭,推荐方法shell> mysqladmin --host=127.0.0.1 --port=3306 --user=xxx --password shutdown注:用户xxx必须拥有shutdown权限,否则报错方

2012-06-25 19:47:29 1352

原创 使用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读锁    mysql> lock tables t_01 read;2. 同一会话继续执行插入语句

2012-06-21 12:33:40 1333

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

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

2012-06-12 19:10:26 12175

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

背景:    在做网页设计时,需要定位HTML元素位置时,势必要使用到CSS样式position值relative、absolute。样例: A B C D E注:position值为relative的元素以其前面兄弟元素为参照,并且元素左上角坐标就是后面兄弟元素左上角坐标 A B

2012-04-21 19:57:25 6620

原创 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_01(...column_name...) SELECT * FROM T_01_BAK0401

2012-04-02 07:55:09 516

原创 数据库表连接后获取记录条数之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;其中T_1、T_2表结构如下:create table t_1 (  id numbe

2012-03-06 19:58:37 3449

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

数据升级:update_t_origin.sql-- 重命名旧表alter table t_origin rename to bak_t_origin;-- 同义词方案,将新表切换上线create or replace synonym t_origin for t_origin_01;-- 注:也可以通过视图方案将新表切换上线,语句如下:-- create or repla

2011-12-20 11:47:16 1407

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

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

2011-12-20 07:49:12 2160

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

背景:类UNIX系统的编辑器有很多,比如vi,emacs等 ,这些编辑器功能非常强大。而ed是行编辑器,也就是说每次编辑都是以行为单位。个人认为ed编辑器功能虽然不如vi等强大,但是命令好记,功能简单足够。假如需要对许多文件做相同的编辑操作,如果逐个打开文件,然后输入一堆相同的命令,这势必降低工作效率,这种情况可以通过将ed编辑器命令保存在脚本文件中,然后批量执行此命令即可。批量执行e

2011-12-07 07:49:55 1489

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

数据迁移:migrate_update_t_origin.sql迁移回滚:migrate_undo_t_origin.sql-- 数据迁移失败, 进行回滚; 数据迁移失败时回滚只需要将数据迁移过程中创建的表删除即可declare  i_count integer default 0;begin  select count(1) into i_count from u

2011-12-01 08:38:43 1557

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

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

2011-11-30 16:38:01 3925

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

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

2011-11-23 07:56:43 1538

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

Shell(bash)实现的随机函数(保存在random_function.sh文件):#!/bin/bash## 产生各类型数据随机函数(BASH实现)# chm, [email protected]# 2011/11/16## BASH中RANDOM伪变量,会随机产生0到32767之间的整数RANDOM_MAX_INT=32768# 产生随机整数, 其值大于等

2011-11-19 09:27:20 3719

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

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

2011-11-11 20:53:01 1038

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

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

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

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

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

2011-10-12 20:49:47 3133

原创 SQL*Plus使用心得

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

2011-10-07 10:36:15 571

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

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

2011-10-07 10:34:10 789

原创 结合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 660

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

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

2011-10-07 10:26:37 1791

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

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

2011-10-07 10:22:17 542

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

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

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

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

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

2011-10-07 10:15:02 662

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

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

2011-10-07 10:09:54 1969

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

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

2011-10-03 12:07:45 63726

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

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

2011-10-03 09:59:40 3796

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

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

2011-10-03 09:55:24 3224

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

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

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

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

select a.sql_text,a.FIRST_LOAD_TIME,a.EXECUTIONS from gv$sql a,dba_users bwhere a.PARSING_USER_ID=b.user_id AND b.username=upper('ygtest')order by FIRST_LOAD_TIME desc;

2006-01-08 13:10:00 1211

云杉密码箱---一个帮您记住各种密码的J2ME手机软件

银行卡、论坛、网络游戏等等其他的,密码老忘?云杉密码箱帮您记忆。 本软件旨在降低人们的记忆量,用软件管理您所有的密码,只要记住进入云杉密码箱的密码就行了。

2010-06-10

ehcache1.5类库

ehcache类库 ehcache类库 ehcache类库 ehcache类库

2008-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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