㈠ 如何编写sql备份表语句
备份表是数据库管理中的重要步骤。以下是针对不同数据库系统编写备份表语句的方法:
SQL Server
使用SELECT INTO语句复制表数据到新表,然后使用BACKUP DATABASE命令备份整个数据库至文件。
MySQL
使用SELECT INTO OUTFILE语句导出表数据至文件,接着使用mysqlmp命令备份数据库至文件。
Oracle
同样使用SELECT INTO语句复制数据至新表,接下来通过expdp命令备份整个数据库至文件。
SQLite
使用SELECT INTO语句将表数据复制到新表,然后使用sqlite3命令备份数据库至文件。
PostgreSQL
使用pg_mp命令备份表结构和数据至文件。这命令仅备份名为original_table的表,若需备份整个数据库,可省略-t参数。
在执行备份时应关注数据一致性,最好在事务中操作,以防备份过程中的错误导致数据不一致。备份后,可通过LOAD DATA INFILE(MySQL)、SQL Server Management Studio(SQL Server和Oracle)导入备份文件至新表,或使用mysqlmp、BACKUP DATABASE(SQL Server)或expdp命令备份整个数据库至文件。
㈡ 在sql数据库属性里删除帐套有什么影响
手动清除法
执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志:
mp transaction with truncate_only
mp transaction with no_log
通常删除事务日志中不活跃的部分可使用“mp transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“mp transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。
以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“mp transaction database_name to mpdevice”命令。
清除后对数据库没有影响
㈢ 如何判断mysqlmp的成功与失败
mysql数据库的备份
用mysql的mysqlmp --flush-logs --master-data=2 --single-transaction -h $host --port $port -R --quick -u$user -p$pwd --database test| gzip -9 > $abc.tar.gz就能实现数据备份
遇到一个问题,如何能判断mysql自己的mysqlmp成功还是失败了呢,最后发现mysqlmp有一个属性--log-error
这个属性可以把mysqlmp的出现的warning和error日志写到指定的文件中,判断文件有没有warning信息和error信息就行
但是用临时文件似乎有点多余,能不能直接在shell里面获取musqlmp的值呢
然后看到http://www.cnblogs.com/kevintian/articles/1139118.html 这篇帖子 见子目录的mysql日志
里面有一节
3. 错误日志
该日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。
当使用mysqld_safe启动服务器时,该脚本自动在启动项上加上--log-error但没有加上file_name,或者直接在libexec目录下使用./mysqld --user=mysql --log-error启动服务器,此时没有给定file_name值,mysqld将使用错误日志名host_name.err 并在数据目录中写入日志文件。
将错误信息写入错误日志文件的原理是,服务器将对标准错误输出重定向到该日志文件,所以如果不指定--log-error,错误被写入标准错误输出stderr,通常标准输出为你的终端。如果在程序中有printf等语句的话,这些函数打印出的信息也被写入该日志文件。
如果执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。如第一次生成的错误日志为:linux-8tpn.err。执行该命令后将该文件重命名为:linux-8tpn.err-old。
这说明我们只要在不指定--log-error的情况下,能获取到stderr的信息就可以了。那如何获取stderr的信息呢
参考http://my.oschina.net/qihh/blog/55308进行详细了解
发现还是实现不了通过变量来获取mysqlmp的异常信息,就采用--log-error的方式了
grep "mysqlmp1" abc.log && ./test2.sh || ./test1.sh 用以上命令可以实现在abc.log中查找字符串mysqlmp1,如果查到的话就执行./test2.sh 否则执行./test1.sh (grep "Hello Would" temp && echo "Hello Would" || echo "Hello China")
通过以上方式可以到日志文件中查找是否有error,有的话就说明备份失败。
㈣ 如何清除sql日志_数据库技巧
1.打开查询分析器,输入命令 DUMP TRANSACTION 数据库名 WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 清除Log有两种方法: 1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。 2.手动清除法 执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志: mp transaction with truncate_only mp transaction with no_log 通常删除事务日志中不活跃的部分可使用“mp transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“mp transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。 以上两种方法只?清除日志,而不做日志备份,若想备份日志,应执行“mp transaction database_name to mpdevice”命令。 PS:附一个更好的方法 先分离数据库后,直接删除日志以后,再在查询分析器里用 exec sp_attach_single_file_db 数据库名, .mdf文件路径 命令附加数据库。
㈤ postgresql常见命令及操作
服务启动
安装完成后的命令自动安装了如 pg_ctl , postgres, psql 等 Postgres 常用工具。
启动服务时需指定目录,通常默认在 /usr/local/var/postgres,使用 pg_ctl start 也可启动服务,但需设置环境变量 PGDATA=/usr/local/var/postgres,否则会报错。
设置开机自动启动。
常用命令如下:
查看版本 - 查看 Postgres 版本信息。
查看数据库状态、操作 - 了解数据库运行情况。
创建数据库用户 - 新建数据库账户。
创建数据库/密码 - 创建数据库及其访问密码。
远程进入psql命令行 - 远程连接数据库。
命令总结:
用户实用程序:
系统实用程序:
在数据库中的一些命令:
基本数据库操作:
表内基本操作:
PostgreSQL用户认证:通过 pg_hba.conf 文件进行,可在/usr/local/pgsql/data 中找到。
完整创建数据库用户示例:
设定用户权限:创建用户组,添加用户,授予特定权限,删除用户。
备份数据库:使用 pg_mp 和 pg_mpall 命令。
数据目录介绍:包含 base、global、表空间目录等,其中 base 是最重要的目录,存放每个数据库的数据。
pg数据目录:在 Linux 中可能是 /usr/local/var/postgres。
全局目录:包含 pg_database、pg_tablespace 等全局系统表。
表空间目录:每个 Oid 对应一个名为 Oid 的软链接文件。
配置文件:如 postgresql.conf 和 pg_hba.conf,配置连接、资源使用、优化等。
备份与恢复:备份数据库和表,使用 pg_mp 命令,恢复库/表。
常见数据库操作:基本操作类似 MySQL,如创建表、插入数据等。