oracle启动时的错误日志在哪里?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle启动时的错误日志在哪里?相关的知识,希望对你有一定的参考价值。
oracle启动时的错误日志在哪里?如题?错误日志是在哪里啊?刚才启动oracle时出了故障~我现在想看看原因~错误日志哪里啊?我的系统是linux的
在“oracle安装路径\\product\\oracle版本\\admin\\实例名称\\bdump”路径下。
备注:根据文件修改的时间,找到启动日志“.trc”文件,即可看到错误信息。
参考技术A 在安装目录oracle\admin\SID_name\bdump下的*.log文件以systemdba登录,show parameter background_dump_dest,可以看到日志文件所在的路径,日志文件名一般是alert什么的。日志文件需要经常维护,不然会不断地长大。 参考技术B 在安装目录oracle\admin\SID_name\bdump下的*.log文件
以system登录,show parameter background_dump_dest,可以看到日志文件所在的路径,日志文件名一般是alert什么的。日志文件需要经常维护,不然会不断地长大。
还可以show parameter dump_dest看看所有其他的跟踪文件的路径。那些trc文件应该是可以删除的,是一些跟踪信息。 参考技术C oracle\admin\SID_name\bdump 中的 *.log都是日志文件
用 show parameter 查看 参考技术D ORACLE的日志管理
2002-10 余枫
ORACLE数据库的日志文件$ORACLE_BASE/admin/orasid/bdump/alert_orasid.log记录了重作日志的转换,
数据库启动和关闭,数据库结构的改变,回退段的修改,死锁,内部错误等信息.
数据库管理员需要检查这个文件有无ORA-错误并定期地对这个日志文件进行存档整理。
在UNIX下可以用grep命令把alert_orasid.log里出现的错误保存到另一个文件。然后去找原因。
$grep ORA- alert_orasid.log > error.log
大家都知道,文件越大,其打开和读写的开销越大。如果日志文件太大了(超过5M), 需要对它截断处理。
直接删除它,让ORACLE重新生成不是好的方法。因为ORACLE是通过一个指向文件的指针进行写操作。
在数据库运行时删除了这个文件, ORACLE仍然用原来的文件指针进行写操作,有可能写一个不存在的文件
导致硬盘空间占用。
我们要采用以下的方法:
$tail -100 $ORACLE_BASE/admin/orasid/bdump/alert_orasid.log > /tmp/oracle_temp.log
$cp /tmp/oracle_temp.log $ORACLE_BASE/admin/orasid/bdump/alert_orasid.log
$rm /tmp/oracle_temp.log
对日志文件进行截断处理。
listener的日志文件$ORACLE_HOME/network/log/listener.log记录了通过listener处理的网络请求
信息,它包含客户端请求的时间,连接方式(专用或共享),连接程序,网络协议,主机名,网络端口号等信息。
我们也需要周期地截断它,方法是先停止listener记日志的工作:
$lsnrctl set log_status off
然后进行文件处理( 把原来的日志保存到备份文件夹, 使原来的listener.log置空 )
$cp $ORACLE_HOME/network/log/listener.log $ORACLE_BACKUP/network/log/listener_1.log
$cp /dev/null $ORACLE_HOME/network/log/listener.log
文件操作完成后,打开listener记日志的工作:
$lsnrctl set log_status on
如果你会写简单的shell程序,可以把上面的步骤固化成一个脚本,定一个时间表, 让操作系统去做。
下面是我写的一个按天分割保存listener.log的文件auto_listener.sh
-------------------------------------------------------------------------------------
rq=` date +"%d" `
cp $ORACLE_HOME/network/log/listener.log $ORACLE_BACKUP/network/log/listener_$rq.log
su - oracle -c "lsnrctl set log_status off"
cp /dev/null $ORACLE_HOME/network/log/listener.log
su - oracle -c "lsnrctl set log_status on"
-------------------------------------------------------------------------------------
你可以根据自己的情况定义环境变量ORACLE_HOME,ORACLE_BACKUP或者直接改成实际的目录就可以让
操作系统root用户23:59分运行这个shell脚本完成日志文件的分割处理。
-------------------------------------------------------------------------------------
Microsoft SQL Server里可以执行系统的存储过程来分割ERRRLOG日志:
exec sp_cycle_errorlog
每次SQL Server数据库重新启动时,会自动分割ERRRLOG日志.
参考资料:http://fengyu.china.com/oracle_log.htm
在哪里可以找到 PHP 的错误日志文件?
【中文标题】在哪里可以找到 PHP 的错误日志文件?【英文标题】:Where can I find error log files for PHP? 【发布时间】:2012-10-01 19:46:21 【问题描述】:在哪里可以找到错误日志文件?
我需要检查它们以解决安装 suPHP 后显示的内部服务器错误。
【问题讨论】:
这取决于您的日志记录设置 :) CO 我的服务器是 centos 但在 var/log/httpd 下没有显示任何内容 检查error_log
路径是否在 php.ini 中设置。如果未设置,通常会记录在 Web 服务器的错误日志中。
在php.ini
中寻找error_log
,如果你使用php-fpm
,你可能还想在php-fpm conf文件中检查error_log
这是一个超级常见问题解答。规范问题的候选人:Where does PHP store the error log? (php5, apache, fastcgi, cpanel)。标题有些具体,但答案肯定不是(不是全部)。
【参考方案1】:
您可以使用lsof 在您的系统上查找打开的日志文件。 lsof 只是给你一个所有打开文件的列表。
使用grep 表示“log” ...再次使用grep 表示“php”(如果文件名包含字符串“log”和“php”,如“php_error_log”中的字符串,并且您是根用户会在不知道配置的情况下找到文件)。
lsof | grep log
... snip
gmain 12148 12274 user 13r REG 252,1 32768 661814 /home/user/.local/share/gvfs-metadata/home-11ab0393.log
gmain 12148 12274 user 21r REG 252,1 32768 662622 /home/user/.local/share/gvfs-metadata/root-56222fe2.log
gvfs-udis 12246 user mem REG 252,1 55384 790567 /lib/x86_64-linux-gnu/libsystemd-login.so.0.7.1
==> apache 12333 user mem REG 252,1 55384 790367 /var/log/http/php_error_log**
... snip
lsof | grep log | grep php
**apache 12333 user mem REG 252,1 55384 790367 /var/log/http/php_error_log**
... snip
另请参阅这篇关于查找打开的日志文件的文章:Find open logfiles on a Linux system
【讨论】:
【参考方案2】:它对我有用。我们如何将所有 PHP 错误记录到日志文件中?
只需将以下行添加到文件 /etc/php.ini 以将错误记录到指定文件 - 文件 /var/log/php-scripts.log
vi /etc/php.ini
修改error_log指令:
error_log = /var/log/php-scripts.log
确保 display_errors 设置为 Off(对最终用户没有错误):
display_errors = Off
保存并关闭文件。重启网络服务器:
/etc/init.d/httpd restart
如何将错误记录到 syslog 或 Windows Server 事件日志?
修改error_log如下:
error_log = syslog
我们如何查看日志?
使用 ssh 登录或使用 SFTP 下载日志文件 /var/log/php-scripts.log:
sudo tail -f /var/log/php-scripts.log
【讨论】:
我为什么要确保 display_errors 是关闭的?当然这不应该影响错误记录,是吗? 如答案中所述,display_errors
确定错误是否显示给最终用户(例如在呈现的网页上),所以不,它不会影响记录。 php.net/manual/en/…
xammpp 的 php.ini 中没有 error_log。我在哪里可以找到这个?【参考方案3】:
在安装了cPanel 的CentOS 上,我的日志位于:
/usr/local/apache/logs/error_log
观看:tail -f /usr/local/apache/logs/error_log
【讨论】:
【参考方案4】:这取决于您使用的操作系统和网络服务器。
在 Linux 和 Apache 上,您可以在文件夹 /var/log/apache2/ 中找到 Apache error_log。
【讨论】:
/var/log 下没有任何名为 apache2 或 apache 的文件夹或文件。我的服务器是centos - apache 在 /var/log/httpd 下?您可以在 apache.conf 文件中配置 apache 的日志位置。这应该位于 /etc/httpd/ 的某个位置【参考方案5】:我将 CentOS 6.6 与 Apache 一起使用,对我来说,错误日志文件位于:
/usr/local/apache/log
【讨论】:
Linux 上的某些LAMP 安装可能使用/var/log/apache2/error.log
。【参考方案6】:
在大多数用例中,这是一个更可取的答案,因为它允许您将软件的执行与服务器平台的直接知识分离,从而使您的代码更具可移植性。如果您正在执行大量 cron 或 CGI,这可能没有直接帮助,但可以在 Web 运行时将其设置为 cron 和 CGI 脚本的配置在这种情况下拉取以保持日志位置一致。
您可以在运行时在任何平台上获取本地分配给 PHP 的当前日志文件,方法是:
ini_get('error_log');
这会返回由 Web 服务器直接分发到 PHP 二进制文件的值,这在 90% 的用例中都是您想要的(明显的例外是 CGI)。 CGI 通常会登录到与 HTTP Web 服务器客户端相同的位置,但并非总是如此。
您还需要在提交任何内容之前检查它是否可写以避免错误。定义其位置的配置文件(通常是全局文件 apache.conf 或基于每个域的 vhosts.conf),但配置不确保文件权限在运行时允许写访问。
【讨论】:
【参考方案7】:这绝对会帮助你,
Enable PHP error logging
或者
在 php.ini 中(vim /etc/php.ini
或 sudo vim /usr/local/etc/php/7.1/php.ini
)
display_errors = Off
log_errors = On
error_log = /var/log/php-errors.log
制作日志文件,用户可写www-data:
sudo touch /var/log/php-errors.log
/var/log/php-errors.log
sudo chown <owner>:www
【讨论】:
【参考方案8】:Unix CLI 用户:
很可能 error_log ini 文件条目没有设置。验证:
php -i | grep error_log
// error_log => no value => no value
您可以在 php.ini CLI 文件中设置它,或者只是简单地将所有 standard error 自己快速传送到一个文件中:
./myprog 2> myerror.log
那么快:
tail -f myerror.log
【讨论】:
以上是关于oracle启动时的错误日志在哪里?的主要内容,如果未能解决你的问题,请参考以下文章