Lets talk about LOBs please

Ähnliche Dokumente
Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

<Insert Picture Here> Verschlüsselung in der Datenbank

SQL (Structured Query Language) Schemata Datentypen

LOB-Komprimierung mit der Datenbank 11g

Oracle Datenbank 11g Advanced Compression Option

Erzeugung und Veränderung von Tabellen

Datenbanken II. Speicherung und Verarbeitung großer Objekte (Large Objects) Jörg Kohlsdorf 05IND-T

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn

Verschlüsselung. Klaus Reimers ORDIX AG Köln. Verschlüsselung, encrypt, decrypt, dbms_obfuscation_toolkit, dbms_crypto, wallet, datapump, rman

Flashback mal sieben. DOAG Konferenz , Nürnberg. Klaus Reimers

ids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage nach CHAR oder VARCHAR

Oracle Transparent Data Encryption

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Relationales Datenbanksystem Oracle

Tipps und Tricks in der Datenbankadministration

ids-system GmbH Tipp #5 STRING_UNITS ab DB FP 4

Tabellen und Indizes Reorganisieren, aber wann?

Oracle Database 11gR2 Effiziente Datenspeicherung. Vorteile von Komprimierung

LOB Komprimierung mit Oracle 11g. Einführung. SecureFiles. Nötige Lizenzierungen. Mathias Zarick. Consultant. Oktober 2009

Tablespaces und Datendateien

ORACLE und IBM DB2 Datentypen

DB1. DB SQL-DQL 1 Mario Neugebauer

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Oracle Flashback. in der Praxis Dr. Frank Haney 1

Oracle Advanced Compresion 10g versus 11g

Oracle Flashback DOAG K onferenz Nürnberg 2009 Marco P atzwahl Patzwahl

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Oracle 10g Einführung

Neue Features Oracle Database 12.2 Wann denn endlich?

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Objektrelationale und erweiterbare Datenbanksysteme

Oracle 9i Einführung Performance Tuning

Verschlüsseln als Überlebensstrategie

DOAG München Die etwas anderen Oracle Performance-Tipps. Marco Patzwahl

5000 User+, Erfahrungen im Produktivbetrieb einer Saas-DB. DOAG 2011 Konferenz + Ausstellung Bernhard Vogel & Frank Szilinski, esentri

Objektrelationale Datenbanken

Datenbank Reorganisation Sinn oder Unsinn?

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Aufbau einer Oracle Datenbank


XML in der Oracle Datenbank

Oracle 9i Einführung Performance Tuning

Fast Analytics on Fast Data

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Wie die Datenbank ILM unterstützt

3. Architektur eines DBS (Oracle)

Übersicht der wichtigsten MySQL-Befehle

Erzeugen von Constraints

Oracle PL/SQL für Experten - Performance Analyse und Laufzeitoptimierung

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Oracle Advanced Compression Option

Automatisierte Datenmigration mit dynamischen SQL

Zünde den Turbo-Boost! (LOB-Migration beschleunigt)

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Fuzzy-Suche in Application Express

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Oracle Streams Doag Vortrag Claus Cullmann

Abfragen (Queries, Subqueries)

Einfache Administration von Oracle Datenbanken mit der neuen Toad 10 DBA Suite

Oracle Index Tuning &Admin

Oracle DB 12c Spatial Raster DOAG Oracle Spatial & Geodata Day

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Technische Background Info und Trivadis Scripts

Oracle 9i Einführung Performance Tuning

Philipp Nebel, 05 IN. Speicherung von Datenbank-Objekten in Oracle

Vorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Lehrstuhl für Wirtschaftsinformatik I

Kapitel 4 Dynamisches SQL

MySQL Installation. AnPr

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Objekt-relationales Datenbanksystem Oracle

Partitionierung Indizes und Statistiken

Datenbank und Tabelle mit SQL erstellen

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 8 Indizes. Universität Hannover. Installation. Index-Typen. Anhang.

Oracle Datenbankadministration Grundlagen

Oracle 12c: Migrationswege und Konzepte. Dierk Lenz

Historisierung und Versionierung

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Kapitel 4 Dynamisches SQL

Es geht also im die SQL Data Manipulation Language.

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

Objektorientierung in Oracle

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

Johannes Ahrends Geschäftsführer CarajanDB GmbH CarajanDB GmbH

Flashback Früher war alles besser Marion Mahr Daniel Schulz Flashback Früher war alles besser

Verwendung und Einsatzmöglichkeiten des Flashback-Query

Oracle Core für Einsteiger: Datenbank I/O

Parallele Programmierung in SQL und PL/SQL. Peter Bekiesch Dierk Lenz DOAG 2011 Konferenz und Ausstellung 17. November 2011

Oracle Zusatzoptionen intermedia Video

Übung PL/SQL Trigger Lösungen

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Architecture

Transkript:

Beate Künneke BK Unternehmensberatung bk@berlin.de Lets talk about LOBs please DOAG Konferenz 19.11.2015 Nürnberg

Agenda Strukturiert, semistrukturiert, unstrukturiert Migration LOBs Warum alles in der DB? Flashback und LOBs Chunks SecureFiles Verschlüsselung Partitionierung UNDO UTF-8 und LOBs Logging LONG SecureFiles Komprimierung Space Management House-Keeping DBMS_SPACE BasicFiles SQL und PL/SQL SecureFiles 2

Strukturiert, semistrukturiert, unstrukturiert <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE kochrezept SYSTEM "kochrezept.dtd"> <kochrezept> <rezeptname>cocktailsauce zum Lobster</rezeptname> <zutatenliste> <zutat>180 g Mayonnaise </zutat> <zutat>1 EL Ketchup </zutat> <zutat>2 EL geschlagene Sahne</zutat> <zutat>1 TL Weinbrand</zutat> <zutat>etwas Meerrettich</zutat> <zutat>salz und Pfeffer</zutat> </zutatenliste> <anweisungsfolge> <anweisung>mayonnaise mit Ketchup, Meerrettich und Weinbrand vermengen. </anweisung> <anweisung>geschlagene Sahne vorsichtig unterziehen.</anweisung> <anweisung>zum Schluss nach Geschmack mit Salz und Pfeffer würzen.</anweisung> </anweisungsfolge> </kochrezept> Quelle: Wikipedia 3

Warum alles in der DB? Speicherung Verwaltung Performance Verschlüsselung Zugriff Sicherung/Wiederherstellbarkeit Konsistenz Datenschutz und Datensicherheit 4

LONG Verwendbar auch für Oracle Version < 8i Inhalte bestehen aus Zeichen (LONG) oder Binär -Daten(LONG RAW) Größenbeschränkung: 2GB-1 Schon lange abgekündigt, wird aktuell (12c) aber immer noch unterstützt und im Data Dictionary verwendet Zahlreiche Einschränkungen/Nachteile Pro Tabelle maximal 1 LONG-Spalte Keine Indizierung von LONG-Spalten Keine Unterstützung von Partitionierung und LONG in einer Tabelle Kann nicht als Datentyp für den Rückgabewert einer Funktion gewählt werden 5

LOBs Datentyp ab 8i verfügbar und derzeit der aktuell zu verwendende für große Datenmengen CLOB= Character large objects Text files: log files, SQL scripts, RTF documents Ersetzt LONG NCLOB für nationale Zeichensätze (z.b. 红烧大虾 in Sojasoße gebratener Hummer) BLOB= Binary large objects Binary files: Excel, MS Word,PDFs, pictures, movies. Ersetzt LONG RAW Bfiles Speicherung einer Referenz auf eine Datei im Dateisystem Anwendung DBMS_LOB package SQL functionsregexp_... tohandle CLOBs Oracle Text supportforfulltextsearch Speicherung als BasicFiless SecureFiles (neueste Speicherform) Quelle: Wikipedia 6

BasicFiles Verwendbar ab 8i, derzeit (noch) gültig, ist aber nicht mehr die modernste Speicherform Besteht aus LOB-Segment und LOB-Index LOB-Segment und LOB-Index sind zwangsweise in demselben TBS können aber unabhängig vom Tabellen-TBS abgelegt werden Lob-Index verwaltungstechnisch nicht mit Index vergleichbar Beispiel: CREATE TABLE BK.REZEPTE ( REZEPT_ID NUMBER(12,0) NOT NULL, REZ_NAME varchar2(100) NOT NULL, REZ_BILD BLOB NOT NULL ) TABLESPACE BK_TS01 COLUMN RE_BILD STORE AS BASICFILE BLOB; 7

SecureFiles Verwendbar ab 11g SecureFiles ist ein kein neuer Datentyp, sondern die neue Implementierung des basicfile SecureFiles erweitert LOBs um Features wie Verschlüsselung Komprimierung (Performance und Speicherplatz) Deduplizierung (Performance und Speicherplatz) Bei nicht-nutzung ist der Performance und/oder Speicherplatzgewinn fragwürdig SecureFiles erlaubt die Konsolidierung von dateibasierten- mit relationalen Daten Einheitliches Security-Modell Einheitliche Datensicht Einheitliches Datenmanagement Voraussetzung ist ASSM SecureFiles sind für die Anwendung transparent Datentypen weiterhin BLOB/CLOB Definition in der Storage-Clause oder durch DB-Parameter Keine funktionalen Unterschiede Selbst Deduplication" ist transparent für den Entwickler Komprimierung/Deduplizierung und/oder Verschlüsselung sind kostenpflichtig 8

Space Management Wo muss man schauen? DBA_SEGMENTS, DBA_LOBS Tabelle mit LOB-Spalte(n) Separate TBS für Tabellen und LOBs möglich Falls mehre LOBs pro Tabelle ggfs. pro LOB separates TBS Auswirkungen ggfs. nur für komfortablere Administration falls TBS auf derselben Platte liegen LOB-Daten Inline (enable storage in row) bis 4000 Byte Zu empfehlen bei kleinen Lobs auf die immer gleichzeitig mit den Tabellen-Daten zugegriffen wird Beim Zugriff auf Tabellen-Daten werden die LOB-daten mitgelesen, somit mehr Blöcke gelesen werden müssen Out-of-line (disable storage in row), falls LOB-Daten > 4000 Byte, dann immer out-of-line Tabelle speichert LOB-Locator LOB-Segmente sollten benannt werden LOB-Index Interne Struktur für den Zugriff auf LOB-Daten Immer in demselben TBS wie LOB-Daten Kann nicht separat per drop, rebuild oder move verändert werden 9

Chunks Unterteilung der Lob Segmente in Chunks Chunk-Größe ist vielfaches der Blockgröße Write wird durchgeführt auf Chunk-Basis Es werden Versionen von Daten in den Chunks gehalten BasicFiles statische Größe DB-Parameter Maximal 32K SecureFiles Dynamische Größe Auch größer 32K möglich Wer will noch einen Tschunk? Inhalt: Limetten, Rohrzucker, Crushed Ice, Rum, Club Mate 10

UNDO LOBs werden anders behandelt als bei den anderen Datentypen Ältere Versionen werden im LOB-Segment selbst gehalten Zur Steuerung gibt es 2 Parameter PCTVERSION RETENTION Parameter PCTVERSION Relevant für basicfile Verwendung für securefile noch möglich aber nicht sinnvoll Kennzeichnet den Bereich der beim insert frei bleibt für Updates Parameter RETENTION Zeitperiode in denen ältere Versionen noch verfügbar sind Unterstützt in Automatic Undo Management Wert wird über UNDO_RETENTION gesetzt Entweder PCTVERSION oder RETENTION Achtung bei Fallback Query/Table CREATE TABLE ContainsLOB_tab (n NUMBER, c CLOB) lob (c) STORE AS BASICFILE segname (TABLESPACE lobtbs1 CHUNK 4096 RETENTION NOCACHE LOGGING STORAGE (MAXEXTENTS 5) ); 11

Migration Limits der Datentypen VARCHAR2 Byte-Länge für Spalte Bis 11g 4000 Byte Ab 12c 32K LONG 2GB-1 CLOB, BLOB, NCLOB (4 gigabytes - 1) * (database block size) BFILE Betriebssystem-abhängig Der Zeichensatz ist bei der Länge der zu speichernden Daten zu beachten Z.B. bei UNICODE: 1 Zeichen sind max. 4 Byte, d.h. in einer VARCHAR2-Spalte können ggfs. nur 1000 Zeichen gespeichert werden VARCHAR2 kann zu LONG konvertiert werden Mit der Einschränkung: die Tabelle darf nicht partioniert sein. LONG- Spalte kann in LOB konvertiert werden Bascisfile in SecureFiles Keine einfache Konvertierung möglich CTAS Alter table move lob Data Pump Online Table Redefinition (DBMS_REDEFINITION) 12

Partitionierung Für Tabellen mit LOBs bietet sich Partitionierung an Beliebt ist Range-Partitionierung 1 oder auch 2 Ebenen Beachtung verdient auch die Reference-Partitionierung Für LOBs gilt: LOB-Segmente und LOB-Indexe folgen der Partitionierungsstrategie der Tabelle Interessante Besonderheit für die Umstellung von BasicFiles auf SecureFiles: Neue Partitionen können als SecureFiles angelegt werden, auch wenn die bisher verwendeten als BasicFiles angelegt wurden Eine normale Tabelle kann über dbms_redefiniton in eine partitionierte Tabelle konvertiert werden. 13

Logging LOGGING/NOLOGGING Bei LOBs wird keine Rollback-Information (UNDO) für die Daten erzeugt, da (überschriebene) LOB-Daten in Versionen gehalten werden, Rollback Information gibt es nur für LOB Index Änderungen (unerheblich ob LOGGING oder NOLOGGING) LOGGING bedeutet FULL REDO für LOB-Daten FILESYSTEM_LIKE_LOGGING für SecureFiles Für SecureFiles zusätzliche Option: NOLOGGING wird zu FILESSYSTEM_LIKE_LOGGING NOLOGGING/FILESYSTEM_LIKE_LOGGING interessant für BULK Loads oder INSERTS CACHE impliziert LOGGING 14

House-Keeping Shrink-Befehl gibt es auch für BasicFile-Lobs, aber nicht für SecureFiles: ALTER TABLE employees MODIFY LOB (emp_lob) (SHRINK SPACE); Ansonsten Reorganisieren über MOVE, DBMS_REDEFINITION,.. Nützliches Feature: DROP_EMPTY_SEGMENTS Im Package DBMS_SPACE_ADMIN Bereinigt leere Segmente Erforderlich sind SYS-Privilegien Segment-Creation kann auch bereits mit der Option DEFERRED verzögert werden durch den Initialisierungsparameter deferred_segment_creation SELECT name, type, value, isses_modifiable, issys_modifiable FROM v$parameter WHERE name LIKE 'defer%'; 15

Flashback und LOBs Delorean5 von ADC - Wikipedia Flashback Query oder Flashback Table werden normalerweise aus dem UNDO-TBS bedient Dies gilt für LOBs nicht Es sind keine Rollback-Informationen für LOB-Daten vorhanden, denn für LOB-Daten gibt es Versionen in den LOB-Segmenten Potentieller Platz im UNDO nützt für Flashback Query oder Table nichts! Steuerung über PCTVERSION oder RETENTION Weiterhin ist die Art des Space-Managements zu beachten AUTO (ASSM) bei SecureFiles ist RETENTION maßgeblich Bei BasicFiless kann PCTVERSION genutzt werden MANUEL (MSSM) PCTVERSION 16

UTF-8 und LOBs 红烧大虾 Bei der Benutzung von Multibyte-Datensätzen ist bei der Bearbeitung auf die korrekte Längenangabe zu achten Dies führt zu einem fehlerhaften BLOB dbms_lob.writeappend(v_blob, dbms_lob.getlength(v_data), utl_raw.cast_to_raw(v_data)); -- falsch Dies ist korrekt dbms_lob.writeappend(v_blob, utl_raw.length( utl_raw.cast_to_raw(v_data)), utl_raw.cast_to_raw(v_data)); -- korrekt 17

SQL und PL/SQL Beispiel für ein einfaches Insert: INSERT INTO Print_media (product_id, ad_id, ad_sourcetext) VALUES (1, 1, 'This is a One Line Advertisement'); Oder Nutzung von EMPTY_CLOB() Viele SQL VARCHAR2 Funktionen und Operatoren funktionieren auch für LOBs PL/SQL ein wichtiges Package ist dbms_lob Neue Features in 12c Mehr Möglichkeiten zur parallelen Ausführung von INSERT, INSERT AS SELECT, CREATE TABLE AS SELECT, DELETE, UPDATE, MERGE, Multitable INSERT, SQL*Loader und Import/Export Bei BasicFiles nur wenn partitioniert ist 18

DBMS_SPACE Wieviel Speicherplatz benötigt eine Tabelle mit LOB-Spalte(n)? Tabelle mit Zugriff auf dba_segments ggfs. auch für Partitionen Zugehörige LOB-Daten und LOB-Indexe haben eigenständige Namen und können über das DD ausfindig gemacht werden über den Zugriff auf dba_lobs Ggfs. gibt es auch noch IOT (dba_indexes) Nachteil: Es wird nicht gefüllter Platz innerhalb des Segmentes mitgezählt! Genauere Antwort liefert das Package Dbms_space Dbms_space.space_usage Dbms_space.unused_space mit 2 überlagerten Prozeduren für BasicFiles SecureFiles (hier werden genauere Werte geliefert) Hinweis mit einem Anwendungsbeispiel: s. Carsten Czarski Blog 19

SecureFiles Verschlüsselung TDE: Transparent für den Benutzer Verschlüsselt bei Betriebssyste-Zugriff Beispiel: CREATE TABLE tabellenname (spaltenname varchar2(2000) ENCRYPT USING 'AES256' SALT, lobspalte blob) LOB (lobspalte) STORE AS SECUREFILE (ENCRYPT USING 'AES256') ; NO SALT wird nicht unterstützt Mögliche Verschlüsselungsalgorithmen: AES192 (default), 3DES168, AES128, and AES256 Alle LOBs in einer LOB-Spalte sind verschlüsselt Alle Partitionen einer LOB-Spalte sind verschlüsselt ALTER TABLE kann für enable/disable genutzt werden Schlüssel im Wallet oder Passwort Datapump unterstützt Verschlüsslung, export/import nicht 20

SecureFiles Komprimierung Textteil......wird ersetzt durch... _FLIEGEN 1 WENN_ 10 _NACH. 11 HINTER 100, 101 Beispiel: Ausgangstext: WENN HINTER FLIEGEN FLIEGEN FLIEGEN, FLIEGEN FLIEGEN FLIEGEN NACH. (66 Zeichen) Eine sehr einfache, aber nicht sehr effiziente Entropiekodierung besteht darin, alle Teile einer Nachricht nach ihrer Häufigkeit zu sortieren, und mittels binären Zahlen zu nummerieren. Kodiertext: 10 100 1 1 1 101 1 1 1 11 (25 Zeichen) Lizenzpflichtige Option bei der Benutzung von SecureFiles 3 Level: low, medium (default) und high Deduplication Kandidaten sind identische Lobs Innerhalb eines LOB-Sgements, kann nicht Partitionen oder Subpartitionen übergreifend wirken Kann auf Partitions-Ebene spezifiziert werden Mit DBMS_LOB.SETOPTIONS kann für einzelne LOBs die Option enabled/disabled werden. Komprimierung verspricht Performance-Gewinn Denn weniger Blöcke müssen in die SGA eingelesen werden 21

Lets talk about LOBs please Warum alles in der DB? Flashback und LOBs Strukturiert, semistrukturiert, unstrukturiert SecureFiles Verschlüsselung Partitionierung UNDO UTF-8 und LOBs Chunks Migration Logging LOBs LONG SecureFiles Komprimierung Space Management House-Keeping BasicFiles SecureFiles DBMS_SPACE SQL und PL/SQL DOAG 2015, 19.11.2015 Lets talk about LOBs please Beate Künneke bk@berlin.de