Показаны сообщения с ярлыком database. Показать все сообщения
Показаны сообщения с ярлыком database. Показать все сообщения

четверг, 14 мая 2020 г.

Доступ к СУБД Firebird 3.0 через JSP под Tomcat

Пример доступа к БД Firebird 3.5 через JSP под Tomcat.

Чтобы научить Apache Tomcat 9 под Java 1.8 подключаться к базам Firebird 3.0, копируем из архива jaybird-4.0.0.java8.zip файлы jaybird-full-4.0.0.java8.jar, lib\antlr-runtime-4.7.2.jar, lib\connector-api-1.5.jar, lib\jna-5.5.0.jar в папку <tomcat>\lib.
Создаем web-приложение: JSP-страница, которая будет выводить содержимое таблицы "USER" из БД "c:/data/base.fdb" сервера "dbserver"
<tomcat>\webapps\test_app\index.jsp

Листинг index.jsp:
<%@page import="java.sql.*" %>
<%Class.forName("org.firebirdsql.jdbc.FBDriver"); %>
<HTML>
    <HEAD>
        <TITLE>Database access through JSP</TITLE>
    </HEAD>
    <BODY>
        <H1>Result of select query</H1>
        <%
            Connection connection = DriverManager.getConnection(
                "jdbc:firebirdsql:dbserver/3255:c:/data/base.fdb",
                "SYSDBA",
                "masterkey");
            Statement statement = connection.createStatement();
            ResultSet resultset = statement.executeQuery("select id, name from user order by id asc");
        %>
        <TABLE BORDER="1">
            <TR>
                <TH>id</TH>
                <TH>name</TH>
            </TR>
            <% while(resultset.next()){ %>
            <TR>
                <TD> <%= resultset.getString(1) %></TD>
                <TD> <%= resultset.getString(2) %></TD>
            </TR>
            <% } %>
        </TABLE>
    </BODY>
</HTML>

четверг, 3 марта 2016 г.

Доступ к СУБД Firebird через JSP под Tomcat

Пример доступа к БД Firebird через JSP под Tomcat.

Чтобы научить tomcat подключаться к базам Firebird, копируем jaybird-full-2.2.9.jar в папку <tomcat>\lib.
Создаем web-приложение: JSP-страница, которая будет выводить содержимое таблицы "USER" из БД "c:/data/base.fdb" сервера "dbserver"
<tomcat>\webapps\test_app\index.jsp

Листинг index.jsp:
<%@page import="java.sql.*" %>
<%Class.forName("org.firebirdsql.jdbc.FBDriver"); %>
<HTML>
    <HEAD>
        <TITLE>Database access through JSP</TITLE>
    </HEAD>
    <BODY>
        <H1>Result of select query</H1>
        <%
            Connection connection = DriverManager.getConnection(
                "jdbc:firebirdsql:dbserver/3255:c:/data/base.fdb",
                "SYSDBA",
                "masterkey");
            Statement statement = connection.createStatement();
            ResultSet resultset = statement.executeQuery("select id, name from user order by id asc");
        %>
        <TABLE BORDER="1">
            <TR>
                <TH>id</TH>
                <TH>name</TH>
            </TR>
            <% while(resultset.next()){ %>
            <TR>
                <TD> <%= resultset.getString(1) %></TD>
                <TD> <%= resultset.getString(2) %></TD>
            </TR>
            <% } %>
        </TABLE>
    </BODY>
</HTML>

Полезные ссылки:
http://www.java2s.com/Tutorial/Java/0360__JSP/MakeDatabaseconnection.htm
http://jaybirdwiki.firebirdsql.org/jaybird/doku.php?id=config:driver_config

Проработать:
http://www.tutorialspoint.com/jsp/jsp_database_access.htm

вторник, 16 февраля 2016 г.

(не проверено) Standby Database

http://docs.oracle.com/cd/A87860_01/doc/server.817/a76995/standbyc.htm
Топорков Юрий (11:26:00 16/02/2016)
если кратко:
1. создать на сервере стендбай стуктуру папок как на рабочей бд
2. скопировать файл паролей и spfile с рабочей
3. скопировать бэкапсет, автобэкап с рабочей.
4. поднять бд в режим nomount, восстановить из автобэкапа контрфайл
5. стартуем в mount
6. ресторим БД
7. на рабочей создаем стендбай контр файл
8. меняем на стендабае обычные контрлфайлы на новые конрфайлы (для стенбая из п7)
9. запускаем БД в режим стендбая, несколько команд.

вторник, 11 августа 2015 г.

sub_var (Oracle)

Можно задавать переменные прямо в SQL-редакторе IDE, например, вместо
select 'test' from dual;
можно выполнить:
define myvar='dual'
select 'test' from &myvar;
т.е. название таблицы "DUAL" я поместил в переменную "myvar", а затем обратился к этой переменной из запроса "SELECT".

Для подстановки переменной для замены "OWNER" в конструкции:
SELECT * FROM OWNER.TABLE
нужно дублировать "точку", например, вместо:
select * from SCOTT.DEPT
пишем:
define myowner='SCOTT'
define myowner_to_run='&myowner..'
select * from &myowner_to_run.DEPT.


По мотивам: sub_var, sub_var2.

четверг, 5 февраля 2015 г.

Размер БД Oracle с разбивкой по сегментам

Расчет размера БД Oracle:

select
    sum(bytes)
from
    DBA_EXTENTS
where
    owner=<OWNER_NAME>
;

Размер БД с разбивкой по именам сегментов и их типов (таблицы, индексы и т.д.):
Примечание: в академических целях расписано подробно.

select
    SEGMENT_NAME,
    SEGMENT_TYPE,
    sum(bytes)
from
    DBA_SEGMENTS
where
    owner=<OWNER_NAME>
group by
    SEGMENT_NAME, SEGMENT_TYPE
;

Размер БД по таблицам (с учетом индексов и LOB-сегментов):

select TABLE_NAME, sum(bytes)/1048576 as SIZE_MB from
(
select t.TABLE_NAME, s.bytes
from user_segments s join user_tables t on t.TABLE_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'TABLE'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_indexes t on t.INDEX_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'INDEX'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_indexes t on t.INDEX_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'LOBINDEX'
union all
select t.TABLE_NAME, s.bytes
from user_segments s join user_lobs t on t.SEGMENT_NAME=s.SEGMENT_NAME
where s.SEGMENT_TYPE = 'LOBSEGMENT'
)
group by TABLE_NAME
order by sum(bytes) desc
;



По мотивам.

понедельник, 10 февраля 2014 г.

Уровень изоляции транзакции

--Переключить уровень изоляции в режим SERIALIZABLE:
set transaction isolation level serializable;

--Переключить уровень изоляции в режим READ COMMITTED:
set transaction isolation level read committed;

--Узнать уровень изоляции неподтвержденной транзакции:
/* Если 29-й бит поля FLAG таблицы v$transaction равен "0", то уровень 'READ COMMITTED', иначе 'SERIALIZABLE' */
SELECT
  s.sid,
  s.serial#,
  s.username,
  CASE BITAND(t.flag, POWER(2, 28)) WHEN 0 THEN 'READ COMMITTED' ELSE 'SERIALIZABLE' END AS isolation_level
FROM v$transaction t join v$session s on (t.ses_addr=s.saddr);

Источник:
http://stackoverflow.com/questions/3663343/how-can-you-see-what-transaction-isolation-level-an-arbitrary-oracle-session-is

- BITAND:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions014.htm
- POWER:
(возведение числа1 в степень, выраженную числом2)
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions112.htm

суббота, 12 мая 2012 г.

Oracle SQL Developer

Только сегодня узнал, что есть нормальная альтернатива «SQL Navigator» - «Oracle SQL Developer» - страница загрузки.
Есть и для Windows и для Linux.
--
Чтобы каждая открываемая на просмотр таблица открывалась в отдельной вкладке автоматически нужно включить чекбокс "Automatically Freeze ObjectViewer Windows" в меню Tools > Preferences > Database > ObjectViewer.

Архив