- 博客(30)
- 资源 (2)
- 收藏
- 关注
原创 忘记MySQL数据库root帐号密码,怎么修改过来?
背景:MySQL数据库root帐号一般只有MySQL DBA知道,这个帐号的密码需要严格保密,一旦泄漏问题很严重;但是如果DBA忘记了,则不能进行某些MySQL的管理工作,这时就必须在保证数据安全、无损坏的情况重置root帐号密码步骤:1. 停止mysqld数据库服务 shell> service mysql stop 注:如果有用户拥有shutdown权限,则可以
2012-06-26 17:30:13
5028
原创 关闭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
1467
原创 使用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
1387
原创 使用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
12235
原创 CSS中position属性值relative与absolute区别
背景: 在做网页设计时,需要定位HTML元素位置时,势必要使用到CSS样式position值relative、absolute。样例: A B C D E注:position值为relative的元素以其前面兄弟元素为参照,并且元素左上角坐标就是后面兄弟元素左上角坐标 A B
2012-04-21 19:57:25
6727
原创 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
542
原创 数据库表连接后获取记录条数之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
3501
原创 数据量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
1439
原创 数据库平滑演进或者说数据平滑迁移方案及步骤
背景:随着系统环境的变化(如:数据量过大等),一个系统的数据库结构需要跟随调整优化,以满足业务要求。特别是在互联网应用系统的开发过程中,数据库的变化比较频繁,这时必须从技术上保证数据库能平滑、透明地进行迁移。数据库平滑迁移需要遵守的严则:1. 尽量透明, 迁移过程不能影响业务运行2. 如果数据量大,迁移过程可能很慢,但是升级必须迅速。也就是说将业务运行所依赖的数据切换到迁移后数
2011-12-20 07:49:12
2276
原创 如何将类似UNIX系统中的ed编辑器命令脚本化
背景:类UNIX系统的编辑器有很多,比如vi,emacs等 ,这些编辑器功能非常强大。而ed是行编辑器,也就是说每次编辑都是以行为单位。个人认为ed编辑器功能虽然不如vi等强大,但是命令好记,功能简单足够。假如需要对许多文件做相同的编辑操作,如果逐个打开文件,然后输入一堆相同的命令,这势必降低工作效率,这种情况可以通过将ed编辑器命令保存在脚本文件中,然后批量执行此命令即可。批量执行e
2011-12-07 07:49:55
1526
原创 数据量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
1593
原创 数据量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
4001
原创 采用Shell及AWK脚本实现磁盘使用空间监控
背景:在应用程序中,经常需要配置FTP空间存放数据,同样数据库也需要大量的磁盘存放业务数据。如果FTP和数据库磁盘空间不够,却没有及时通知相关人员进行处理,就会导致程序错误或者数据库无法存储数据。这类故障是及其严重的。Shell脚本(disk_space_warn.sh):#!/bin/bash## 监控磁盘使用空间是否超限# chm, 461810517@qq.c
2011-11-23 07:56:43
1593
原创 采用Shell编程实现随机函数(包括整数、符点数、字符、日期时间),顺便与AWK实现作下性能对比
Shell(bash)实现的随机函数(保存在random_function.sh文件):#!/bin/bash## 产生各类型数据随机函数(BASH实现)# chm, 461810517@qq.com# 2011/11/16## BASH中RANDOM伪变量,会随机产生0到32767之间的整数RANDOM_MAX_INT=32768# 产生随机整数, 其值大于等
2011-11-19 09:27:20
3777
原创 互联网应用上线后,别忘记实现部署这些运维监控脚本
背景:互联网应用,往往面临高并发、高可用等挑战,一但应用出现问题而没有及时发现,导致系统宕机,其损失是及其重大的。所以及时有效的监控到异常,并将异常及时通知相关责任人可以最大限度的降低损失。及时有效的监控到异常可以通过定时程序来实现,而异常及时通知功能目前最好是以短信的方式进行通知。监控脚本类别:1). 应用程序类 a). 第三方程序接口可用性监控;这类监控主要是避免第
2011-11-11 20:53:01
1090
原创 数据库树型结构中获取目录串的高性能方法,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
1095
原创 数据库设计心得 --- 树形结构
背景:树型结构表的设计在实践中, 经常碰到. 如果设计不好, 则会给应用程序的实现导致很大的麻烦. 这里以文件夹、文件作为例子介绍实现:-- 文件夹信息表create table t_folder(folder_id number primary key,
2011-10-12 20:49:47
3212
原创 SQL*Plus使用心得
背景:身为Oracle DBA,必须熟练使用Oracle数据库客户端工具SQL*Plus,而且大部分情况下,很可能就是你管理Oracle数据库的唯一工具。使用:1. 当执行SQL*Plus匿名PL/SQL语句块时,需要插入语句,如何输入分号“;”假设SQL*P
2011-10-07 10:36:15
615
原创 Linux下命令TOP中的常用交互命令
背景:在监控、诊断服务器(如Oracle Database Server)性能时,TOP命令在类UNIX系统中最经常使用。各使用场景:1. 2500毫秒刷新一次TOP内容,总共5次,输出内容存放到performace.txt文件中# top -b -d 2.5
2011-10-07 10:34:10
816
原创 结合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
693
原创 采用AWK编程实现随机函数(包括整数、浮点数、字符串、日期时间)
背景:作为Oracle Database DBA,经常需要构造数量级百万、千万、甚至更多的数据来进行脚本性能测试。如何快速产生这些数据呢?我们可以用Shell、Perl、AWK等编程实现,目前经过本人测试发现:相同的实现算法采用AWK效率更高,Perl次之,Shell过慢。
2011-10-07 10:26:37
1842
原创 类UNIX系统中AWK编程注意事项
背景:AWK是类UNIX系统中的文本处理工具,使用AWK编程实现基于文本数据库统计,往往效率比较好,至少我测试的情况比PERL脚本效率高不少。注意事项:1. AWK编程中,定义函数时,不建议在函数中使用全局变量。原因是不利函数重2. AWK编程中,建议将所有局部变量定义在函数形式参数中,方便函数重用、移植AWK自定义函数形式:function name(arg1,
2011-10-07 10:22:17
575
原创 如何对数据量8亿的表中数据去重,其中重复的数据是总数据12.5%
背景:某定时应用程序(每天02:00启动)会读取指定目录下的所有txt扁平数据文件,并将数据保存到ORACLE数据库。本来应用程序将txt文件中数据入库后,会将目录中的txt数据文件备份到另外的目录中,但是应用程序有BUG导致备份失败。应用程序初始运行时需要对1亿全量的数据入
2011-10-07 10:18:21
5511
1
原创 如何打包oerr客户端程序,而不是为了使用oerr工具而安装整个ORACLE数据库
背景:Oracle数据库中查询错误代码相关的Cause和Action时,需要使用oerr工具。oerr工具是随Oracle数据库程序默认安装的,如果仅仅想使用oerr工具查看Error Message,再重新安装Oracle数据库即花时间也占用大量磁盘空间。Oracle提供了
2011-10-07 10:15:02
696
原创 使用SQL*Plus操作数据库,当出现Error Message时,如何在简体中文和英文之间切换?
背景:Oracle DBA登录后台数据库进行管理操作时,一般都是使用SQL*Plus客户端工具进行,如果操作出现ora类型的Error Message时,有的人想看简体中文错误提示,有的人想看纯英文错误提示(如:本人),如何设置呢? 介绍:要达到提示中英文切换,我
2011-10-07 10:09:54
2036
原创 如何为ORACLE表空间或临时表空间增加数据文件?
背景:当通过ORACLE中的create table ... as select 语句创建一张新表时,新表的数据量为比较大,如10亿,这时SQL*Plus很可能就会提示“ORA-01653: ...”错误信息。这个错误信息暗示表空间大小不够,需要为表空间增加数据文件。分析
2011-10-03 12:07:45
64169
原创 杀死或者断开连接到ORACLE数据库的用户会话
背景:如果连接到ORACLE数据库用户正在执行非常耗时、耗资源的SQL操作,导致业务非常慢、甚至中断;这个时候就需要查找出正在执行耗时、耗资源的SQL操作会话,并将其杀死,从而恢复业务步骤:1. 查找正在耗时、耗资源SQL操作的会话2. 杀死会话 ALT
2011-10-03 09:59:40
3868
原创 通过USER_SOURCE、DBA_SOURCE、ALL_SOURCE查询Oralce数据库对象DDL语句
背景:在很多情况下,我们都希望获取某个对象的SQL语句,以方便进一步分析问题。如:存储过程编译失败,我们可以通过详细错误信息知道代码哪行出现错误,而源SQL语句不是自己开发,这时就需要知道ORACLE数据库对象DDL语句方法:SELECT NAME, LINE, TE
2011-10-03 09:55:24
3379
原创 使用SQL*Plus创建ORACLE存储过程报编译错误,如何知道具体错误信息?
问题:采用SQL*Plus登录ORACLE数据库,创建存储过程如果报错的话,往往就提示一句“Warning: Procedure created with compilation errors.”,如何显示或定位出详细的错误信息?方法一:在SQL*Plus中输入命令:
2011-10-03 07:25:44
12368
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
1270
云杉密码箱---一个帮您记住各种密码的J2ME手机软件
2010-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人