网站建设资讯

NEWS

网站建设资讯

linux命令自动填充 linux自动填充文件名

linux下mysql数据库建一个人员表关于字段的设置

建议你建一个触发器,在插入数据之前触发即可实现你要的功能。

创新互联-专业网站定制、快速模板网站建设、高性价比桐庐网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式桐庐网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖桐庐地区。费用合理售后完善,十余年实体公司更值得信赖。

示例代码如下:

mysql CREATE TABLE tb(BH CHAR(16),content VARCHAR(20),`date` DATETIME,val INT);

Query OK, 0 rows affected (0.05 sec)

mysql

mysql

mysql DELIMITER $$

mysql DROP TRIGGER IF EXISTS tri_NewBH $$

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql

mysql CREATE TRIGGER tri_NewBH BEFORE INSERT ON tb

- FOR EACH ROW

- BEGIN

-     DECLARE dt CHAR(8);

-     DECLARE bh_id CHAR(16);

-     DECLARE number INT;

-     DECLARE new_bh VARCHAR(16);

-

-     SET dt = DATE_FORMAT(CURDATE(),'%Y%m%d');

-

-     SELECT

-         MAX(BH) INTO bh_id

-     FROM tb

-     WHERE BH LIKE CONCAT(dt,'%');

-

-     IF bh_id = '' OR bh_id IS NULL THEN

-         SET new_bh = CONCAT(dt,'00000001');

-     ELSE

-         SET number = RIGHT(bh_id,8) + 1;

-         SET new_bh =  RIGHT(CONCAT('00000000',number),8);

-         SET new_bh=CONCAT(dt,new_bh);

-     END IF;

-

-     SET NEW.BH = new_bh;

- END$$

Query OK, 0 rows affected (0.09 sec)

mysql

mysql DELIMITER ;

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.00 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.01 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.00 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.00 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.00 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.01 sec)

mysql INSERT INTO tb(content,`date`,val) VALUES('LiangCK','2009-05-11',20);

Query OK, 1 row affected (0.00 sec)

mysql SELECT * FROM tb;

+------------------+---------+---------------------+------+

| BH               | content | date                | val  |

+------------------+---------+---------------------+------+

| 2009051100000001 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2009051100000002 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2009051100000003 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2009051100000004 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2011051200000001 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2011051200000002 | LiangCK | 2009-05-11 00:00:00 |   20 |

| 2011051200000003 | LiangCK | 2009-05-11 00:00:00 |   20 |

+------------------+---------+---------------------+------+

7 rows in set (0.00 sec)

生成文件超过行数新建'>linux>生成文件超过行数新建

可以使用函数“lseek”。

lseek函数本身不会扩展文件的大小。

lseek允许文件的偏移值超过文件的末端,如果下一次在这个偏移点写入数据,那么在偏移之前的文件末端与偏移点之间的数据将会自动填充为0。

在Linux平台下 怎样搭建Oracle数据库 ? 越详细越好 紧急 还望高手指点?

刚刚配置好的一个,发给你参考一下。

在 Linux x86 上安装 Oracle 数据库 10g

uname -r

例如:

# uname -r

2.4.21-4.0.1.ELsmp

其他所需程序包的版本(或更高版本):

? gcc-3.2.3-2

? make-3.79

? binutils-2.11

? openmotif-2.2.2-16

? setarch-1.3-1

? compat-gcc-7.3-2.96.122

? compat-gcc-c++-7.3-2.96.122

? compat-libstdc++-7.3-2.96.122

? compat-libstdc++-devel-7.3-2.96.122

? compat-db-4.0.14.5(Oracle 10g 数据库安装指南 中将其列为是必需的,但此处并不需要)

要查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:

rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \

compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

例如:

# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \

openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

gcc-3.2.3-20

make-3.79.1-17

binutils-2.14.90.0.4-26

openmotif-2.2.2-16

setarch-1.3-1

package compat-db is not installed

compat-gcc-7.3-2.96.122

compat-gcc-c++-7.3-2.96.122

compat-libstdc++-7.3-2.96.122

compat-libstdc++-devel-7.3-2.96.122

请注意,尚未安装 compat-db 程序包。安装过程中可用的任何程序包组均不包含此程序包,因此必须在单独的步骤中安装。如果系统上缺少任何其他程序包版本,或版本比以上指定的版本旧(compat-db 除外),则可以从 Red Hat Network 下载并安装更新。

安装 compat-db

插入原始 Red Hat Enterprise Linux 介质的第二张 CD。(Update 2 中未包含该程序包,它仅存在于原始介质中。)

此 CD 自动挂载。

以 root 用户身份运行以下命令:

rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm

例如:

# rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm

Preparing... ########################################### [100%]

1:compat-db ########################################### [100%]

________________________________________

第 2 部分:针对 Oracle 配置 Linux

Linux 软件现已安装完毕,您需要针对 Oracle 对其进行配置。本部分将逐步讲解针对 Oracle 数据库 10g 配置 Linux 的过程。

验证系统要求

要验证系统是否满足 Oracle 10g 数据库的最低要求,以 root 用户身份登录并运行以下命令。

要查看可用 RAM 和交换空间大小,运行以下命令:

grep MemTotal /proc/meminfo

grep SwapTotal /proc/meminfo

例如:

# grep MemTotal /proc/meminfo

MemTotal:512236 kB

# grep SwapTotal /proc/meminfo

SwapTotal:1574360 kB

所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。

Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。要检查系统上的可用磁盘空间,运行以下命令:

df -h

例如:

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 6.8G 1.3G 5.2G 20% /

/dev/sda1 99M 17M 77M 18% /boot

该示例表明,/tmp 目录没有自己的文件系统。(对本指南而言,它是根文件系统的一部分。)根文件系统可用空间为 5.2 GB,除了满足安装 (2.5 + 1.2 + 0.4 = 4.1GB) 外还小有富余。

创建 Oracle 组和用户帐户

接下来,创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall 和 dba。以 root 用户身份执行以下命令:

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/useradd -m -g oinstall -G dba oracle

id oracle

例如:

# /usr/sbin/groupadd oinstall

# /usr/sbin/groupadd dba

# /usr/sbin/useradd -m -g oinstall -G dba oracle

# id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

设置 oracle 帐户的口令:

passwd oracle

例如:

# passwd oracle

Changing password for user oracle.

New password:

Retype new password:

passwd:all authentication tokens updated successfully.

创建目录

现在,创建存储 Oracle 10g 软件和数据库文件的目录。本指南在创建目录结构时所用的命名惯例符合最佳灵活结构 (OFA) 规范。有关 OFA 标准的更多信息,请参阅针对 UNIX 系统的 Oracle 数据库 10g 安装指南 的附录 D。

以下假设在根文件系统中创建目录。这样做是为了简便起见,不建议将其作为通用做法。这些目录通常被创建为单独的文件系统。

以 root 用户身份执行以下命令:

mkdir -p /u01/app/oracle

mkdir -p /u02/oradata

chown -R oracle:oinstall /u01/app/oracle /u02/oradata

chmod -R 775 /u01/app/oracle /u02/oradata

例如:

# mkdir -p /u01/app/oracle

# mkdir -p /u02/oradata

# chown -R oracle:oinstall /u01/app/oracle /u02/oradata

# chmod -R 775 /u01/app/oracle /u02/oradata

配置 Linux 内核参数

Linux 内核非常出色。与大多数其他 *NIX 系统不同,Linux 允许在系统启动和运行时修改大多数内核参数。完成内核参数更改后不必重新启动系统。Oracle 数据库 10g 需要以下所示的内核参数设置。其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

如果您按照以上说明安装了 Linux,且内核参数全部采用默认值,则只需在以 root 用户身份登录后执行下命令。

cat /etc/sysctl.conf EOF

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

EOF

/sbin/sysctl -p

例如:

# cat /etc/sysctl.conf EOF

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

EOF

# /sbin/sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

kernel.sysrq = 0

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

以 root 用户身份运行以下命令来验证您的设置:

/sbin/sysctl -a | grep shm

/sbin/sysctl -a | grep sem

/sbin/sysctl -a | grep file-max

/sbin/sysctl -a | grep ip_local_port_range

例如:

# /sbin/sysctl -a | grep shm

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shm-use-bigpages = 0

# /sbin/sysctl -a | grep sem

kernel.sem = 250 32000 100 128

# /sbin/sysctl -a | grep file-max

fs.file-max = 65536

# /sbin/sysctl -a | grep ip_local_port_range

net.ipv4.ip_local_port_range = 1024 65000

如果系统的参数设置的比上述参数值小,则编辑 /etc/sysctl.conf 文件,添加或更改这些参数。完成后,运行以下命令激活更改:

/sbin/sysctl -p

为 oracle 用户设置 Shell 限制

Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:

cat /etc/security/limits.conf EOF

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

EOF

cat /etc/pam.d/login EOF

session required /lib/security/pam_limits.so

EOF

对于 RHEL 2.1 和 RHEL 3,使用以下命令:

cat /etc/profile EOF

if [ \$USER = "oracle" ]; then

if [ \$SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

EOF

cat /etc/csh.login EOF

if ( \$USER == "oracle" ) then

limit maxproc 16384

limit descriptors 65536

umask 022

endif

EOF

oracle 用户的环境变量

要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:

ORACLE_BASE

ORACLE_HOME

ORACLE_SID

PATH

如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。

以 oracle 身份登录,修改 .bash_profile文件为如下内容:

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

# Oracle Settings

TMP=/tmp;

export TMP

TMPDIR=$TMP;

export TMPDIR

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

ORACLE_SID=orcl

ORACLE_TERM=xterm

PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH ORACLE_TERM

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

此更改将在您下次登录到 oracle 帐户时生效。要使更改对当前会话为活动状态,只需从命令行运行此命令。

________________________________________

第 3 部分:安装 Oracle

可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。但不提供支持,且该许可不允许用于生产目的。OTN 提供了完整的许可协议。

要使 Oracle 10g 发行套件介质可以在服务器上使用,最简单的方法是将其直接下载到服务器。

使用图形登录以 oracle 身份登录。

创建一个目录以存放 Oracle 10g 发行套件:

mkdir 10g_db

要从 OTN 下载 Oracle 数据库 10g,请将浏览器(Mozilla 比较好用)指向 。填写 Eligibility Export Restrictions 页面,并阅读 OTN 许可协议。如果您接受限制和许可协议,则单击 I Accept。

单击 ship.db.cpio.gz 链接,并将该文件保存在为此目的创建的目录 (10g_db) 中 — 如果尚未登录到 OTN,则此时可能提示您登录。

解压缩此文件:

cd 10g_db

gunzip ship.db.cpio.gz

cpio -idmv ship.db.cpio

安装软件

使用 oracle 帐户登录。

指定数据库名称 (ORACLE_SID)。该名称通常不多于五个字符。对此安装使用 demo1。

设置环境变量:

? Borne shell 和 Korn shell

? ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

? ORACLE_SID=demo1; export ORACLE_SID

? C shell

? setenv ORACLE_BASE /u01/app/oracle

? setenv ORACLE_SID demo1

将目录更改为 Oracle 10g 软件解压缩到的位置。

例如:

$ cd $HOME/10g_db

将目录更改为 Disk1。

例如:

$ cd Disk1

启动 Oracle 通用安装程序。

$ ./runInstaller

1. 欢迎

o 单击 Next。

2. 指定清单目录和证书

o 如果您一直在依循本指南中的步骤,则使用默认值即可。否则,编辑清单目录的路径,以指向正确目录。

o 操作系统组名称应为 oinstall。

3. 如果这是首次在此机器上安装 Oracle,则您将收到一个弹出窗口,提示需要以 root 用户身份运行 orainstRoot.sh 脚本。以 root 用户身份登录,更改到窗口中指定的目录,执行该脚本,然后继续操作。

4. 指定文件位置

o 如果您一直在依循本指南中的步骤,则使用默认值即可。否则,在继续操作前确保源路径和目标路径正确。

5. 选择安装类型

o 接受默认值 Enterprise Edition。

6. 与特定产品相关的先决条件的检查

o 如果您一直在依循本指南中的步骤,则所有检查都应顺利通过。如果一个或多个检查失败,则在继续操作前纠正该问题。

7. 选择数据库配置

o 接受默认值 Create a starter database 和 General Purpose。

8. 指定数据库配置选项

o 输入数据库的全局数据库名称。该名称应包含 ORACLE_SID 和服务器域名(例如,demo1.orademo.org,其中 demo1 是 ORACLE_SID,orademo.org 是域名)。

o 输入全局数据库名称时,SID 框将自动填充。

o 接受默认的数据库字符集。

o 选择 Create database with sample schemas。

9. 选择数据库管理选项

o 选择 Use Database Control for Database Management。

10. 指定数据库文件存储选项

o 选择 File System,然后输入数据库文件要使用的路径名(在本例中为 /u02/oradata)。

11. 指定备份和恢复选项

o 选择 Do not enable Automated backups。

12. 指定数据库模式口令

o 选择 Use the same password for all the accounts。

o 选择一个口令,然后输入两次进行确认。

13. 摘要

o 显示已安装产品的摘要。

o 单击 Install。

14. 安装

o 此屏幕历经安装和链接 Oracle 软件的几个阶段。

o 安装过程结束时弹出一个窗口显示配置信息。记下 Enterprise Manager URL,然后单击 OK 关闭该窗口。

o 弹出一个“Setup Privileges”窗口,提示需要以 root 用户身份运行配置脚本。以 root 用户身份登录,切换到该窗口中指示的目录,然后执行 root.sh 脚本。该脚本提示输入本地 bin 目录的位置。按 Enter 键接受默认值。当脚本完成时,返回到 Setup Privileges 窗口并单击 OK。(如下所示。)

15. 安装结束

o 记下摘要中显示的 URL,并在准备好时单击 Exit。

16. 恭喜!您的新 Oracle 10g 数据库已经启动并可以使用。

________________________________________


分享名称:linux命令自动填充 linux自动填充文件名
URL分享:http://njwzjz.com/article/docipci.html