标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,884)
- DB2 (22)
- MySQL (82)
- Oracle (1,709)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (73)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (662)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- 记录19c ASM磁盘掉线触发ORA-59048故障处理
- aix平台Oracle数据库由于断电无法启动故障处理
- 断电引起ORA-600 3005故障处理
- 记录一次云存储资源到期之后引起的数据库恢复
- Firebird 损坏数据库数据抢救工具—firebirdext
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
分类目录归档:数据库
网站流量统计
本程序采用.net平台和mysql数据库实现
mysql数据库中表:
CREATE TABLE `web_statistics` ( `id` int(10) unsigned NOT NULL auto_increment, `Cur_url` varchar(500) NOT NULL, `Pre_url` varchar(500) NOT NULL default '未知', `Os` varchar(50) NOT NULL default '未知', `Ip` varchar(15) NOT NULL, `Browser` varchar(50) NOT NULL default '未知', `Access_Time` datetime NOT NULL, `Host_Name` varchar(45) NOT NULL default '未知', PRIMARY KEY (`id`) )
mysql存储过程:
CREATE PROCEDURE `proc_statistics`(Cur_url varchar(500),Pre_url varchar(500),Os varchar(50),Brows varchar(50),Host_Name varchar(45),Ip varchar(15)) begin insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name) values(Cur_url,Pre_url,Os,Ip,Brows,now(),Host_Name); end
ashx执行平台代码:
using System;
using System.Web;
using MySql.Data;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data;
public class Statistics : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "image/jpg";
string url_cur = "加载当前Url错误";
string url_pre = "直接访问";
if (context.Request.QueryString["d"] != null)
{
url_pre = System.Web.HttpContext.Current.Server.UrlDecode(context.Request.QueryString["d"].ToString()).Replace("`","&");
if (url_pre == "")
{
url_pre = "直接访问";
}
}
if (context.Request.QueryString["u"] != null)
{
url_cur = System.Web.HttpContext.Current.Server.UrlDecode(context.Request.QueryString["u"].ToString()).Replace("`", "&");
}
string[] data = GetData();
string con_mysql = System.Configuration.ConfigurationManager.ConnectionStrings["mysql"].ToString();
MySqlConnection conn;
MySqlCommand cmd ;
try
{
conn = new MySqlConnection(con_mysql);
conn.Open();
cmd = new MySqlCommand();
cmd.Connection = conn;
//存储过程实现
cmd.CommandText = "proc_statistics";
cmd.CommandType = CommandType.StoredProcedure;
MySqlParameter para1 = new MySqlParameter("Cur_url", MySqlDbType.VarChar, 500);
MySqlParameter para2 = new MySqlParameter("Pre_url", MySqlDbType.VarChar, 500);
MySqlParameter para3 = new MySqlParameter("Os", MySqlDbType.VarChar, 50);
MySqlParameter para4 = new MySqlParameter("Ip", MySqlDbType.VarChar, 15);
MySqlParameter para5 = new MySqlParameter("Brows", MySqlDbType.VarChar, 50);
MySqlParameter para7 = new MySqlParameter("Host_Name", MySqlDbType.VarChar, 45);
para1.Value = url_cur;
para2.Value = url_pre;
para3.Value = data[1];
para4.Value = data[3];
para5.Value = data[2];
para7.Value = data[0];
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
cmd.Parameters.Add(para3);
cmd.Parameters.Add(para4);
cmd.Parameters.Add(para5);
cmd.Parameters.Add(para7);
//参数实现
/*
cmd.CommandType = CommandType.Text;
//直接拼接字符串实现
//string sql = "insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name)values('"+url_cur+"','"+url_pre+"','"+data[1]+"','"+data[3]+"','"+data[2]+"',now(),'"+data[0]+"')";
//sql语句参数实现
string sql = "insert into web_statistics(Cur_url,Pre_url,Os,Ip,Browser,Access_Time,Host_Name)values(?Cur_url,?Pre_url,?Os,?Ip,?Brows,now(),?Host_Name)";
cmd.CommandText = sql;
MySqlParameter para1 = new MySqlParameter("?Cur_url", MySqlDbType.VarChar,500);
MySqlParameter para2 = new MySqlParameter("?Pre_url", MySqlDbType.VarChar, 500);
MySqlParameter para3 = new MySqlParameter("?Os", MySqlDbType.VarChar, 50);
MySqlParameter para4 = new MySqlParameter("?Ip", MySqlDbType.VarChar, 15);
MySqlParameter para5 = new MySqlParameter("?Brows", MySqlDbType.VarChar, 50);
MySqlParameter para7 = new MySqlParameter("?Host_Name", MySqlDbType.VarChar, 45);
para1.Value = url_cur;
para2.Value = url_pre;
para3.Value = data[1];
para4.Value = data[3];
para5.Value=data[2];
para7.Value = data[0];
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
cmd.Parameters.Add(para3);
cmd.Parameters.Add(para4);
cmd.Parameters.Add(para5);
cmd.Parameters.Add(para7);
*/
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
}
catch {}
//输入图片
string img_name = "statistics.jpg";
//直接输出图片
// context.Response.WriteFile(context.Server.MapPath(img_name));
//缓冲输出图片
byte[] datas;
if (HttpContext.Current.Cache["datacache"] != null)
{
datas = (byte[])HttpContext.Current.Cache["datacache"];
}
else
{
//记得修改文件图片名称
datas = System.IO.File.ReadAllBytes(context.Server.MapPath(img_name));
HttpContext.Current.Cache.Insert("datacache", datas, null, DateTime.MaxValue, TimeSpan.FromHours(12));
}
context.Response.OutputStream.Write(datas, 0, datas.Length);
}
public string[] GetData()
{
string[] data = new string[4];
string userAgent = System.Web.HttpContext.Current.Request.UserAgent == null ? "无" : System.Web.HttpContext.Current.Request.UserAgent;
data[0] = System.Web.HttpContext.Current.Request.ServerVariables.Get("Remote_Host").ToString(); //主机名(暂时有问题)
data[1] = System.Web.HttpContext.Current.Request.Browser.Platform.ToString() + ":" + GetOSNameByUserAgent(userAgent);//操作系统
data[2] = System.Web.HttpContext.Current.Request.Browser.Browser.ToString() + ":" + System.Web.HttpContext.Current.Request.Browser.Version.ToString();//浏览器名称和版本
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
data[3] = result;//ip地址
return data;
}
private string GetOSNameByUserAgent(string userAgent)
{
string osVersion = "未知";
if (userAgent.Contains("NT 6.1"))
{
osVersion = "Windows 7/Server 2008 R2";
}
else if (userAgent.Contains("NT 5.2"))
{
osVersion = "Windows Server 2003";
}
else if (userAgent.Contains("NT 5.1"))
{
osVersion = "Windows XP";
}
else if (userAgent.Contains("NT 6.0"))
{
osVersion = "Windows Vista/Server 2008";
}
else if (userAgent.Contains("NT 5"))
{
osVersion = "Windows 2000";
}
else if (userAgent.Contains("Linux"))
{
osVersion = "Linux";
}
else if (userAgent.Contains("NT 4"))
{
osVersion = "Windows NT4";
}
else if (userAgent.Contains("Me"))
{
osVersion = "Windows Me";
}
else if (userAgent.Contains("98"))
{
osVersion = "Windows 98";
}
else if (userAgent.Contains("95"))
{
osVersion = "Windows 95";
}
else if (userAgent.Contains("Mac"))
{
osVersion = "Mac";
}
else if (userAgent.Contains("Unix"))
{
osVersion = "UNIX";
}
else if (userAgent.Contains("SunOS"))
{
osVersion = "SunOS";
}
return osVersion;
}
public bool IsReusable {
get {
return false;
}
}
}
实现调用:
因为我把本程序部署在dag.wzu.edu.cn域名的服务器上,所以可以直接通过html+js代码就可以实现客户端的访问统计功能
<img style="width:0px;height:0px;border:0px" id="statistics_id_fei" /><script type="text/javascript"> window.onload = function () { document.getElementById("statistics_id_fei").src = "http://dag.wzu.edu.cn/statistics.ashx?d="+ encodeURI(document.referrer).replace('&', '`') + "&u=" + encodeURI(document.location.href).replace('&', '`') + "&x=" + Math.random(); }</script>
说明:
1、在执行文件ashx上,采用了多种可选方式,其中数据库方面有直接拼接sql,sql参数方法,存储过程调用三种方法;
2、为了能够是js中的onload事件能够执行,加载完ashx文件后,生成一个对应的图片文件,采用了直接加载cache缓存方式实现;
3、只要直接把这里的html和js代码复制到你网址的
两表连接,取出其中某些项不重复的数据
有省、市数据库表,现在要求只取每一个省中的一个市出来
数据库脚步如下
省表:
CREATE TABLE [dbo].[mem_province]( [id] [int] NOT NULL, 1 [nvarchar](6) NOT NULL, [name] [nvarchar](40) NULL, CONSTRAINT [PK_mem_province] PRIMARY KEY CLUSTERED ( 1 ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
市表:
CREATE TABLE [dbo].[mem_city]( [id] [int] NOT NULL, 1 [nvarchar](6) NOT NULL, [name] [nvarchar](50) NULL, [provinceId] [nvarchar](6) NULL, CONSTRAINT [PK_mem_city] PRIMARY KEY CLUSTERED ( 1 ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
执行sql语句为:
SELECT * FROM ( SELECT a.id aid, a.code acode, a.name aname, b.id bid, b.code bcode, b.name bname, b.provinceId bprovinceId FROM mem_province a left JOIN mem_city b on a.code= b.provinceId )c WHERE NOT EXISTS ( SELECT 1 FROM (SELECT a.id aid, a.code acode, a.name aname, b.id bid, b.code bcode, b.name bname, b.provinceId bprovinceId FROM mem_province a LEFT JOIN mem_city b on a.code= b.provinceId)e WHERE e.bid<c.bid AND e.aname = c.aname ) ORDER BY aid
结果如:
发表在 SQL Server
评论关闭
oracle常用语句
1、set timing on开启sql执行计时
2、查看granule大小(granule大小是以SGA大小由系统设定的,当SGA小于1G时,granule大小为4M,当SGA大于1G的时候granule大小为16M)
select component,granule_size from v$sga_dynamic_components;
3、启动数据库受限模式
startup restrict;
如果是open状态转换为受限模式为:
alter system enable restricted session;
授予restricted session权限给用户即可访问受限模式
4、kill session
select sid,serial#,username from v$session; alter system kill session 'sid,serial#';
5、查看未commit的事务
select addr,status from v$transaction;
发表在 Oracle
评论关闭




加我微信(17813235971)
加我QQ(107644445)

